2010-02-10
Perlで一番ややこしく感じるのはリファレンスだと思う
まずPerlが特殊なのはその言葉使いなんですがこれはまぁ普通に慣れます。useとかdieとかmyとか。
スコープの実装はしっかりしているので他のあいまいな言語に比べればとても書きやすいです。このへんはPerlが一番しっかりしている。
Perlはオブジェクト指向とそうではないものが混ざっていますがのも、これも慣れればぜんぜん問題ないです。Rubyの完全なオブジェクト指向に比べれば中途半端に見えるかもしれませんが、実用的で書き心地はぜんぜん悪くないです。むしろよいと思います。
Perlを読みにくく混乱させているのはリファレンス。一番読みにくく感じるのはリファレンス。
リファレンス
問題はリファレンスとそうでないものが混ざっていること。ここがPerlを学ぶ人にとってとてもややこしく感じるところ。(リファレンスが理解できないと多次元データ構造が作れず、けっきょくログの編集すらできないので業務で使えないという羽目に。)
my $array = [1, 2, 3]; # なぜ配列なのにスカラ変数に代入するの? my @array = (1, 2, 3); # 上と何が違うの? my $hash = {a => 1, b => 2}; # なぜハッシュなのにハッシュ変数に代入するの? my %hash = (a => 1, b => 2); # 上と何が違うの?
[1, 2, 3]は以下の意味で
my @array = (1, 2, 3); my $array = \@array;
{a => 1, b => 2}は以下の意味
my %hash = (a => 1, b => 2); my $hash = \%hash;
というということを覚えておくと理解しやすいです。\はリファレンスを取得、リファレンスはスカラ変数に代入するもの。
Perl入門本を書こうとしている話という話を読んでリファレンスと多次元データ構造の解説をきちんと書いてくださったら個人的にはうれしいなぁと思いました。
トラックバック - http://d.hatena.ne.jp/perlcodesample/20100210/1264257759