Hatena::ブログ(Diary)

サンプルコードによるPerl入門 このページをアンテナに追加 RSSフィード

  サンプルコード中心のPerlの入門サイトです。現代的なPerl(v5.8.1以降)の書き方に準拠しています。モダンPerlを効率よく体系的に学習することができます。社内での勉強会や講習のテキストとしてもお使いください。またPerlの初学者の方にもぜひ教えてあげてください。Perlは実用的、高速で、業務を大幅に効率化できる、とても優れたプログラミング言語です。ぜひお役立てください。

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入門本を書こうとしている話という話を読んでリファレンスと多次元データ構造の解説をきちんと書いてくださったら個人的にはうれしいなぁと思いました。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証