perlと日本語

http://homepage2.nifty.com/ttoyoshima/Perl/Perl.htm
http://hardsoft.at.webry.info/200505/article_5.html
http://perl.active-venture.com/pod/perljp.html
perl 5.8以降はunicodeで動いているので、標準で漢字OKになった。
Winの場合は以下の宣言。
use encoding "cp932";
$/ = "\r\n";

requireの使い方


モジュール:
#! /usr/bin/perl
package samplepackage;
sub function1 {
print "hogehoge\n";
}
1;

packageでモジュール名を宣言

メインルーチン:
require 'sample.cgi';
samplepackage::function1();

  • useとrequireの違い

use:
perl5以上
BEGIN, CHECK, INIT ルーチンが使える。
起動時に全て読み込んでコンパイルする

require :
require文実行時にモジュール読み込み
BEGINなど使えない。

連想配列

 連想配列の連想配列などが可能。



%HOGE 連想配列変数 %HOGE 全体
$HOGE{'page'} 連想配列変数 %HOGE の 'page'をキーとする要素
%HOGE = ('key'=>'value'); $HOGE{'key'} = 'value';と同列
%HOGE = (); %HOGE を空にします。
undef %HOGE; %HOGE を未定義値にします。
$a = scalar keys %HOGE; %HOGE の要素数を求めます。

空のハッシュを作成しておき、後から要素を追加

# 空のハッシュを作成
%numbers = ();
# 要素を追加
$numbers{119} = "shoubou";
$numbers{911} = "rescue";
print $numbers{119}, "\n";
print $numbers{911}, "\n";
[実行結果] 
shoubou
rescue

keysやvaluesを用いると、ハッシュで使用されているキー、値の一覧を配列として取得
# 列挙
while ( ( $key, $value ) = each( %hash ) ) {
  print "$key : $value\n";
}
print "\n";
# キーの配列を取得
@keys = keys( %hash );
print "Keys: ";
foreach ( @keys ) {
  print "$_, ";
}
print "\n";
# 値の配列を取得
@values = values( %hash );
print "Values: ";
foreach ( @values ) {
  print "$_, ";
}

existsはハッシュに指定したキーが存在するかを確かめます。
deleteはキーと値の対をハッシュから削除します。
# 列挙
while ( ( $key, $value ) = each( %hash ) ) {
  print "$key : $value\n";
}
print "\n";
# キーが存在するかを確かめる
if ( exists( $hash{"tempura"} ) ) {
  print "\"tempura\" exists in hash.\n";
} 
# キーと値の対を削除
delete $hash{"tempura"};
print "\"tempura\" was removed.\n";
# 列挙
while ( ( $key, $value ) = each( %hash ) ) {
  print "$key : $value\n";
}
# キーが存在するかを確かめる
if ( !exists( $hash{"tempura"} ) ) {
  print "\"tempura\" doesn't exists in hash.\n";
}


ハッシュを参照する

# each関数による列挙
while ( ( $key, $value ) = each( %hash ) ) {
  print "$key : $value\n";
}
print "\n";
# キー配列による列挙
foreach ( keys( %hash ) ) {
  print "$_ : $hash{$_}\n";
}



関数名 解説
delete ハッシュから指定したキーとその値を削除する。delete %HOGE{'key'};
each ハッシュからキーとその値を取り出す。($key,$value) = each %HOGE;
exists ハッシュに指定したキーが存在すれば真を返す。if(exists $HOGE{'key'}){ delete $HOGE{'key'}; }
keys ハッシュ内の全てのキーを取り出す。@keylist = keys %HOGE;
values ハッシュ内の全ての値を取り出す。@valuelist = value %HOGE;

  • 連想配列の連想配列
%HOGE = ('Comic' => {'夢の温度' => '南Q太', 'バガボンド' => '井上雄彦'}); 
print $HOGE{'Comic'}{'バガボンド'};

%hoge{'a'} = %e;

  • 配列の連想配列
@hoge{'a'} = @f;












以下広告
最終更新:2008年03月17日 19:03