argius note

プログラミング関連

Slurp(入力を一度に読み込むイディオム)

http://perldoc.jp/docs/modules/File-Slurp-9999.01/extras/slurp_article.pod
Perlがメインだった頃の私は今以上に何も知らなかったので、こういう資料が今でもためになります。今からみっちり復習するのはちょっとつらいので、ちょっとずつ、何か発見があったときに掘り下げておくことにしようかと思います。<>をリストコンテキストで使うと全部読むのは知ってましたが、$/とかとの関係は分かってませんでした。上記ドキュメントの冒頭のちょっとしたまとめとして、下記のプログラムを書いてみました。

use strict;

my $data;
{
  local( $/ );
  $data = <DATA>;
}
my %conf = $data =~ /([\w_]+) *= *(.+)/gm;
print "trace level: $conf{trace_level}\n";
print "group name : $conf{group_name}\n";

__END__
size = 16
group_name = group1
trace_level = debug