Perlを勉強していて独特だなぁと思うのは、コンテキストを言語が理解するって事。 基本的なコンテキストには、$で始まるスカラー、@で始まるリスト、%のハッシュがあるわけですが、 面白いのは、リストコンテキストは、他の言語におけるhoge[]とは意味が違うよ。って事。 式としてコンテキストを理解するんですね。自然言語みたいに。 現在の時間を得る、localtimeという組み込み関数を使うと良く解る。
my @time = localtime;
my $time = localtime;
print "@time\n";
print "$time\n";

実行結果
10 45 23 20 8 107 4 262 0 Thu Sep 20 23:45:10 2007
何が起こっているかと言うと、 @付きのリストコンテキストにlocaltimeを評価すると、秒から逆に配列として帰ってくるんですね。 $付きのスカラーコンテキストで評価すると、おなじみ英字表記の現在時刻が帰ってくる。 ふっしぎー でも何でも無く、そういう風に実装されている訳ですね。 最近本格的にPerlを勉強し始めたばかりですが、こういったコンテキストのパターンが非常に色々あって、此処がPerlの一番の特色何じゃないかな?と思うんです。 「空気の読める言語 "Perl"」 最近人間ですら、空気読めない奴多いのに・・・ 少しは、ウチの(ry