「初めてのPerl」を読んでいて、「へぇ」だったこと。その2
注意:「初めてのPerl」を読んでいて、「へぇ」だったこと。 - なからなLifeの続きです。
5章 ハッシュ
ハッシュにアクセスするときのキー指定に、正規表現が使える。
$family_mame{"fred"} = "flintstone"; $family_mame{"barney"} = "rubble"; $foo = "bar"; print $family_name{$foo . "ney"};
で「rubble」が表示されるとな。
ハッシュにリストを格納するとき、コンマ区切り or 「=>」を使う。
それだけでなく、最後にコンマを「つけてもつけなくてもよい。」
これ、ループでリスト作るときとか、他の言語だと必ず処理加えなきゃいけないからねぇ。
%hash = ("key1"=>"Value1"、"key2"=>"value2",);
ハッシュのキーに対してundef入れても、キーは存在し続ける、のね。
消したければdelete使うと。
6章 入出力の基本
while(){ print "I saw $_"; }
と
foreach(){ print "I saw $_"; }
は違うと。
whileは1行ずつ受け取って処理し、undefが来たら停止。$_はショートカットとしての意味。
foreachはリストを全部受け取って、デフォルト変数$_で処理する。
メモリの使い方が違う(whileの方が少ない)と。<>を「ダイヤモンド演算子」とは斬新な。
起動引数を受け取る。ファイル名は@ARGV(予約語?)に、中身は通常whileで処理し、$_に入る。
chompに引数を省略すると、$_に作用する。
printfが使える。ただし、配列をprintfするときは、要素の数だけフォーマット指定する必要があり、そのためにはフォーマット指定文字列を動的に組み立ててあげる必要がある、というかそれができる。
練習問題6-1:「tac(catの逆順))のようなプログラムを書け。
答え:
print reverse <>;
恐れ入りました。
というわけで、6章まで読了。
思ったより引っかかった。時間かかった。亀さんな自分。
次は7章、正規表現か。さらに時間かかりそうだ。