perl初心者BLOG

2009-05-14

[][]exists関数について 01:53

exists関数は、ハッシュの中に特定のキーが含まれているか検査することができます。

・サンプルコード

~$ cat hoge.pl
#!/usr/local/bin/perl
%arr = ("日本" => "東京", "バチカン市国" => "");

if (exists($arr{'日本'})) {
        print "キー:日本 は存在します", "\n";
} else {
        print "キー:日本 は存在しません", "\n";
}


if (exists($arr{'バチカン市国'})) {
        print "キー:バチカン市国 は存在します", "\n";
} else {
        print "キー:バチカン市国 は存在しません", "\n";
}

if (exists($arr{'アメリカ'})) {
        print "キー:アメリカ は存在します", "\n";
} else {
        print "キー:アメリカ は存在しません", "\n";
}

・実行結果

~$ ./hoge.pl
キー:日本 は存在します
キー:バチカン市国 は存在します
キー:アメリカ は存在しません

[][]each関数について 01:42

each関数は、ハッシュのkeyとvalueのペアを取得します

・サンプルコード

~$ cat hoge.pl
#!/usr/local/bin/perl
%arr = ("出身" => "東京", "血液型" => "A型", "年齢" => 23);

while(($key, $value) = each(%arr)) {
        print $key,"\t";
        print $value,"\t";
        print "\n";
}

・実行結果

~$ ./hoge.pl
血液型  A型
出身    東京
年齢    23

[][]values関数について 01:31

values関数は、ハッシュのvalueのリストを取得します。

・サンプルコード

~$ cat hoge.pl
#!/usr/local/bin/perl
%arr = ("出身" => "東京", "血液型" => "A型", "年齢" => 23);

foreach $value(values(%arr)) {
        print $value,"\n";
}

・実行結果

~$ ./hoge.pl
A型
東京
23

[][]keys関数について 01:30

keys関数は、ハッシュのkeyのリストを取得します。

・サンプルコード

~$ cat hoge.pl
#!/usr/local/bin/perl
%arr = ("出身" => "東京", "血液型" => "A型", "年齢" => 23);

foreach $key(keys(%arr)) {
        print $key,"\n";
}

・実行結果

~$ ./hoge.pl
血液型
出身
年齢

2009-05-13

[][]ハッシュで数を数える方法 00:47

・サンプルコード

~$ cat hoge.pl
#!/usr/local/bin/perl
@arr = qw(山 海 山 山 海 山 海 山 山 海 );
foreach $_(@arr) {
        $total{$_}++;
}
print "山の数: ",$total{"山"}, "\n";
print "海の数: ",$total{"海"}, "\n";

・実行結果

~$ ./hoge.pl
山の数: 6
海の数: 4

2009-05-09

[][]ハッシュについて 13:16

perlには、キーと値をペアで格納できるハッシュという配列がある。

普通の配列変数には@をつけるが、ハッシュの場合%となる。

■ハッシュの設定パターン1

・サンプルコード

~$ cat hoge.pl
#!/usr/local/bin/perl
# 要素の設定
%week = ('Sun', '日曜', 'Mon', '月曜', 'Thu', '火曜');
# 要素の取得
print $week{'Sun'}, "\n";

・実行結果

~$ ./hoge.pl
日曜

※ 設定するときは変数名に%つかうけど、参照するときは$つかうところ。

※ 参照の括弧は[hoge]でなく{hoge}を使う。

■ハッシュの設定パターン2

・サンプルコード

~$ cat hoge.pl
#!/usr/local/bin/perl
# 要素の設定
%week = ('Sun' => '日曜' => 'Mon' => '月曜' => 'Thu' => '火曜');
# 要素の取得
print $week{'Mon'}, "\n";

・実行結果

~$ ./hoge.pl
月曜

■ハッシュの設定パターン3

・サンプルコード

~$ cat hoge.pl
#!/usr/local/bin/perl
# 要素の取得
$week{'Sun'} = '日曜';
$week{'Mon'} = '月曜';
$week{'Thu'} = '火曜';
# 要素の取得
print $week{'Thu'}, "\n";

※ 個別の要素に値を設定する場合は、%でなく$を使う。

・実行結果

~$ ./hoge.pl
火曜

■要素の取得

・サンプルコード

$hoge = $week{'Mon'};

■要素の削除

・サンプルコード

~$ cat hoge.pl
#!/usr/local/bin/perl
# 要素の設定
%week = ('Sun', '日曜', 'Mon', '月曜', 'Thu', '火曜');
print "初期状態のハッシュ:", %week, "\n";
# 要素の削除
delete $week{'Mon'};
print "要素を削除した後のハッシュ:", %week, "\n";

・実行結果

~$ ./hoge.pl
初期状態のハッシュ:Mon月曜Thu火曜Sun日曜
要素を削除した後のハッシュ:Thu火曜Sun日曜