__papix__ 君が主催をして開催している Perl入学式 というイベントがあります。Unix/Linux/OSXの環境構築から始まり最終的にはWebアプリケーションをつくるハンズオン形式の勉強会を今年は年6回に分けて開催しているようです。かなり丁寧にPerlを教えているという印象があって、それがどんな雰囲気か以前から気になっていたのですが、昨日「Perl入学式 in 東京 #2」にサポーターとして途中から参加させてもらいました。
簡単に感想を述べると「これはすごくいい」。肝は最適な練習問題が所々出され、するとみんな黙々とコーディングし始めるんだけど、それが終わると、参加者同士でコードを見せ合って「これで合ってるかな?」「私はこんな風に書いたよ」と言うようなコミュニケーションが生まれてたりしているのです。正直その様子を見て感嘆しましたよ。
*追記「Perl入学式の補講があるらしいよ!」
「Perl入学式 in 東京 #2」の参加に溢れちゃった人向けに補講があるらしいよ!募集人数増えるかもしれないし、いい機会だから気になった人は参加するといいかも!
さて、その際に話題にあがったりしたんだけど「今風の」Perlに関する勉強するための情報はコツを掴むまではなかなか辿り付くのが難しいって思いました。例えば、Googleで「perl」と検索しても例えば「use strict; use warnings;」の解説をしてないページが上位に出てきます。そこで「ナウな」Perlの書き方を学ぶ上で参考になるリソースへどのように辿り着くか、もしくは、僕がどのようにしているかをまとめてみましょう。
Perlビルトインの機能はリファレンスとして
昨日のPerl入学式でも途中で「chompってなんなんですかー?」って言う質問があったんだけど、Perlそのものに組み込まれた標準的な関数=ビルトイン関数に関しては、ググって出て来たページを見てその場で使い方を把握するのがいいでしょう。また、Perl公式のドキュメントを日本語化した「 perldoc.jp 」ってのもありまして、当然 chompに関する記載 が記述されているのですが、説明が固いのと前提知識が必要だったりするんで、これはある程度Perlに慣れて来たら使うとよいと思います。
ちなみに Pod::PerldocJp というモジュールを入れると「perldocjp」コマンドが使えるようになりブラウザを立ち上げなくてもドキュメントを見ることが出来ます。
$ perldocjp -J perlfunc
するとこんな感じ。
「perldoc perlfunc」で英語のドキュメントが見れるので、ぶっちゃけこのコマンド初めて使いましたがw Perl入学式でモジュールのインスコ方法が紹介されてたっぽいので「cpanm Pod::PerldocJp」して試してみるのもいいでしょう!
例えば「CGI」を避ける
実行環境としてのCGIを否定するわけではないですが、CGI前提で書かれたWeb上のリソースはあんま信用しないっすねー。学習のとっかかりとして「PerlでCGIをしよう!」って言うのは無駄なYak Shaving(目的を達成するために他の問題が次から次へ出てくる状況 参考: yak shaving で人生の問題の80%が説明できる問題 - bkブログ )な感じがするので最低限 CLI=Command Line Interface である程度のことをしているリソースを見るといいんじゃないでしょうか。
また、ナウなPerlではCGI以外にもWebアプリを動かす手段がいくつかあって、ってかそれがまさに「ナウな」ので「Web Application Framework」とか「デプロイ」っていうようなキーワードを使って探していくといいと思います。
はてぶの「perl」タグをチェックする
ナウなPerl情報、割とみんながBlog書いていてすごい役に立つのですが、そこまでどう辿り着くのか?色々考えたんだけど、とっかかりとしては「 はてなブックマークのperlタグの新着 」を見るといいかなーって具合です。
こうすれば今回のPerl入学式のようなイベント情報もキャッチアップ出来るでしょう!また、難しい話題が出てきがちですが、その辺は「あーこんなのもあるんだー」程度に把握しておくと後ほど役に立つかもです。
Advent Calendar がまとまっている
毎年年末の12月1日からクリスマスの25日に向けてリレー形式でみんなでPerlに関するTipsを掲載していくJPerl Advent Calendarってのが日本で2008年から始まりました。このJPerl Advent Calendarの記事が、特に最新のモノにしたがって、すっごく役に立ちます。これは僕自身も最近読みてて例えば、
- Perl Advent Calendar Japan 2011 Test Trac
- Perl Advent Calendar Japan 2011 Teng Trac
- Perl Advent Calendar Japan 2011 Dbix Trac
あたりを参考にさせてもらってます。JPerl Advent Caledarの一覧は Perl-users.jp から見る事が出来ます。
CPANモジュールサイトの漁り方
昨日参加した人の感想Blogエントリー にこんな記載が!
あと、ゆーすけべーさんからCPANの歩き方を教えてもらった。
- search.cpan.orgで何かモジュールを検索。Plackとか
- モジュール一覧?のページに行ってBrowsをクリック
- Indexが表示されて、eg/に使い方の例、lib/に本体があるので読む
「ソースコードを読むことに抵抗があるかもしれないけど、今分からなければ後で読めばいいので、とりあえず読むことが大切」と言われた。
これ補足しておきます。まずどんなCPANモジュールがよいのかな〜と悩んだ時にはtokuhiromの記事、CPANソムリエになる方法 を実践するといいでしょう。CPANモジュールの検索は最近 metacpan を使う人が増えてきましたが、僕は search.cpan.org が視覚的にしっくり来るっていう理由だけでw そちらを利用してます。
CPANモジュールをまず使う時には各モジュールのドキュメントに書いてある「SYNOPSIS」のコードをコピペの勢いで自分で書いてみてごにょごにょすれば動きます。
カジュアルに使う分にはSYNOPSISを中心に整形済みのPODドキュメントを見ていけばいいでしょう。また、ディストリビューションのページから「Browse」をクリックするとソースディレクトリがブラウザ上で見れます。
特にソースディレクトリの中でも
- eg/ examples/ sample と言った名前 - 使用例が書いてある
- t/ - テストが入ってるのでこれもモジュールを使う際に参考になる場合がある
- lib/ - ライブラリそのもののソース、挙動を確認したり、勉強したり
って感じで漁っています。手元にソースをダウンロードしてgrep的なことをしたければ
$ cpanm --look Plack
とかやればパッケージをダウンロードして解凍しつつ、ソースがあるディレクトリまで移動してくれるんで便利です。
お気に入りのCPANオーサーを見つける
ライブラリを使っているとこんなケースに遭遇するかもしれません。
- Webアプリのフレームワークによく名前が出てくる「Amon2」っていうのを使ってみよう!
- cpanm Amon2 でインスコ出来るの便利や〜
- Pluginの使い方分からないなー、search.cpan.org/metacpanでドキュメント見てみるか〜
- へーAmon2って「MATSUNOさん」って言う人が書いたんだ
- ってか「MATSUNO★Tokuhiro」の「★」ってなんだよ!どこインスパイアだよ!
- あーところでフォーム値の検証したいなー
- 色々検索したけど「FormVadalitor::Lite」ってのを使ってみよう
- ってこれも「MATSUNOさん」のモジュールやんけ!
- それに加えて外部Web APIへのアクセスを高速化したいなー
- Furlってのが速いらしいね
- ってこれも「MATSUNOさん」のモジュールやんけ!
- 「MATSUNOさん」すごいんじゃない!?
- よーし「MATSUNOさん」をTwitterでフォローしちゃうぞー
- あれ、この人「MATSUNOさん」じゃなくて「徳永さん」なの...?
最後は実際にこの行程を踏まないと分からないネタになりましたがw このように自分がよく使うようなモジュールオーサーの人を見つけてウォッチしていると何かしらよい情報が自然と入ってきます。また、Twitterだけでなく「GitHub」でフォローしておくと開発の様子が分かるのでいいですね。
YAPC::Asia 2013 へ行く
最後はリアルイベントに行って刺激を受けるのが一番だという話。特にYAPC::Asiaは最初参加した時にすごく楽しくて印象に残っています。トークの内容が分からなくても「衝撃を受ける」感覚だけは覚えるのでいいモチベーションアップのキッカケになります。トークの内容が分かるならばまさにナウなPerlの事情がリアルで聞けるし質問も出来ますね。まだ確定では無いですが、僕も「 Mojoliciousでつくる!Webアプリ入門 」っていう内容でトークを応募中なのでよろしければ応援お願いします!
まとめ
Perlを勉強しよう!Googleで「Perl」と検索だ!っていう流れでは中々分かりにくい「ナウな」Perlのリソースへの辿り着き方を紹介しました。本来ならばどんどん良質なドキュメントなりが出て来てそれらが検索しやすいとベストなんですけどね。再び宣伝っぽくなりますが、Kindleにて「Perlについて語ろう」という初心者向けの本を販売しているのでよろしければそちらもどーぞー。