Hatena::Groupperl

satoshipのPerl日記

2007-04-28

「Effective Perl」と「Perl ベストプラクティス」が届いた 00:29 はてなブックマーク - 「Effective Perl」と「Perl ベストプラクティス」が届いた - satoshipのPerl日記

f:id:satoship:20070428233337j:image

先日注文したEffective Perl (ASCII Addison Wesley Programming Series)」と「Perlベストプラクティス」が今朝届きました。今日から 9 連休なので、次のように、9 連休中にやることの目標を立ててみました。

「Effective Perl」は 300 ページに満たない本ですし、パラリパラリとめくってみたところ、読みやすそうなので連休中に読了できるのではと思いました。「Perlベストプラクティス」は弾さんの添削引用されているのを読んで、キレイコードの書き方を学べそうだったので購入したのですが、とりあえず後回しにして、どういうトピックがあるのかを頭に入れておこうと思います。それと同時に、PlaggerCatalyst を使ってコードを書いてレベルアップをしようという計画です。


さて、早速「Effective Perl」を読み始めたのですが、並列的な内容の Tips が 60 個あって、それらが 10 のカテゴリカテゴライズされているという感じの構成でした。本書の序章は「Effective C++」からから引用した次のような言葉から始まります。

プログラミング言語の基礎を学習するのと、その言語効果的にプログラムを設計し実装する方法を学習するのは、まったく別の話だ」

納得。プログラミング言語の基礎を学習することで、それなりにコードを書けるし、問題を解決することもできるが、そのようなコードには可読性、保守性、パフォーマンスなどの面で不備があることが多い。それらは経験を通して徐々に身に付けることが出来るかもしれないが、気付かないことも多い。それに対して本書は、熟練者が経験から得た知識を短期間で手に入れることができるような内容が書かれているようである。例えば今日読んだ中には、スライスのよくある間違った使い方や効果的な使い方が書いてあり、何となくではなく納得しながら読み解くことができました。


受験勉強などでもそうですが、何かを学習するという行為は、基礎勉強インプットしている段階はある程度我慢しながら進めますが、覚えたことをアウトプットしながら問題集を解く段階になると、とたんに楽しくなるものだと思います。プログラミング言語の場合、コードを書いて何かを作るのがアウトプットに当たると思いますが、この本はどちらかというと、Perl の基礎的なトピックを題材に、実践的な視点から見つめたり、バラバラになっているトピックを絡めたりしているような内容だと思うので、インプットした知識の修正や再整理として楽しめそうです。

2007-04-23

一歩前へ 01:46 はてなブックマーク - 一歩前へ - satoshipのPerl日記

昨日は CPANモジュールインストールする時に、ほぼ失敗していたのですが、/usr/local/bin/usr/local/lib削除してインストールしなおしたら、どうやらここで失敗しないようになった。

一体何だったんだろう。それにしても気分がいい。

2007-04-22

「初めてのPerl」をほぼ読み終えたが 00:07 はてなブックマーク - 「初めてのPerl」をほぼ読み終えたが - satoshipのPerl日記

YAPC::ASIA 2007 Tokyo の会場で恥じらいながら購入した初めてのPerl」をほぼ読み終え、「まるごとPerl! Vol.1」も気になるところは大体読んだのだが、実際の Perlコードはというと、まだ 50 行も書いていない。数値が内部的には double 型として扱われていることや、スカラーコンテキストリストコンテキストがあることや、全ての組み込み関数を覚えるまではアンパーサンドを付けてサブルーチンを読み出すべきであることや、"," は "=>" と置き換え可能であることや、"<>" をダイヤモンド演算子と呼ぶことや、メタキャラクタ "." が改行文字以外の文字にマッチするのには意味があることや、自然言語のように記述できることや、「やり方は何通りもあります」(There's More Than One Way To Do It.)というキャッチフレーズや、"<=>" が 3 文字なのは戻り値が 3 種類あるからだということや、DBM ファイルを読み込む仕組みがあることなどを学んで、早く Plagger に触れたり、Catalyst で誰にも知られることのないサイトを作りたいと、思春期青年セックスをしたいが如くに Perlコードを書きたいという衝動が込み上げているにも関わらず、何故まだそうしていないかと言うと、実はモジュールインストールにことごとく失敗し続けているからなのだ。もちろん、OS X 上でなんとか CPAN からインストールしようとしている僕の知識不足が悪いのは間違いなくて、さっさと Linux を準備するか、別の方法でインストールする、というのが筋なんだろうとは思うんだけど、Perl を始めたからには CPAN を使ってみたいし、それを愛用の OS X 上でなんとかやり遂げたい。だから、さっき 50 行も書いていないと言ったけど、実はそのうちの半分近くは、perl -le 'print for @INC'perl -MCPAN -eshell を何度も打ち込んでひたすら環境の確認とモジュールインストールを繰り返しているだけなんだ。この調子だと来週のゴールデンウィークは、perl の INSTALL や CPAN.pm を読んでいる内に終わってしまうのではないかという不安を抱えてしまったのだが、そこは冷静になってひとまずその前に「Effective Perl (ASCII Addison Wesley Programming Series)」と「Perlベストプラクティス」が届くよう注文をしたというのが、今日の僕です。

2007-04-19

OSXPerlインストールしようと試みた 01:47 はてなブックマーク - OSX に Perl をインストールしようと試みた - satoshipのPerl日記

XML::Feed のインストールに失敗して、原因がよく分からないので、OSX 上の Perl 情報を検索していたら、こんなお話が。

次いで、PerlインストールOSX にはデフォルトPerl が載ってるんだけど、以前に iBook で似非マカーしてたときは標準の Perl でいろいろ CPAN モジュールインストールにつまづいたりした経験があったので、/usr/local/bin に入れると。

OSX 環境構築中 - naoyaのはてなダイアリー

何が起きたかを解説すると、LWPはインストール時に各コマンドperl本体と同じディレクトリーにインストールしようとします。perlが/usr/binにインストールされていたら、当然HEADも/usr/bin/HEAD。ところがOS XデフォルトファイルシステムであるHFS+では、ファイル名はcase insensitive。/usr/bin/headを上書きしちゃうわけです。

404 Blog Not Found:perl - LWPあれこれ

まずは CPAN をちゃんと理解しないといけないな、と思っていましたが、気分転換Perlインストールすることにしました。参考にしたのは、弾さんのエントリに貼られている、以下のページ。

no title

途中で力つきたので、続きは週末かな。