Perlを勉強していて独特だなぁと思うのは、コンテキストを言語が理解するって事。
基本的なコンテキストには、$で始まるスカラー、@で始まるリスト、%のハッシュがあるわけですが、
面白いのは、リストコンテキストは、他の言語におけるhoge[]とは意味が違うよ。って事。
式としてコンテキストを理解するんですね。自然言語みたいに。
現在の時間を得る、localtimeという組み込み関数を使うと良く解る。
my @time = localtime;何が起こっているかと言うと、 @付きのリストコンテキストにlocaltimeを評価すると、秒から逆に配列として帰ってくるんですね。 $付きのスカラーコンテキストで評価すると、おなじみ英字表記の現在時刻が帰ってくる。 ふっしぎー でも何でも無く、そういう風に実装されている訳ですね。 最近本格的にPerlを勉強し始めたばかりですが、こういったコンテキストのパターンが非常に色々あって、此処がPerlの一番の特色何じゃないかな?と思うんです。 「空気の読める言語 "Perl"」 最近人間ですら、空気読めない奴多いのに・・・ 少しは、ウチの(ry
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
コメント