たまには呪文をとなえてみるか:仕事版

アクセスカウンタ

help リーダーに追加 RSS [Perl] 宿題:Plaggerを読む事

<<   作成日時 : 2008/07/05 07:25   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

おはようございます。
朝5時に目が覚めたおじいさんです。
なんか寝付けないので、Plaggerのソースコードでも見てみました。

Perlというと、モダンなPerlの作法があまり本という媒体で流布していない、という欠点があります。
そこで、Perlを遣う素人はCPANのモジュールを見る訳なんですが、Perlに付属しているCPANモジュールがよいかというと、そういうわけではありません。

少し前にも書きましたが、CGI.pmなんてひどいものです。まあ、書かれた当時が当時なのでわけわかめなソースになっています。
そこで、
 
 Perl「言語」初心者がモダンなPerlを高速に学ぶ方法
  http://dann.g.hatena.ne.jp/dann/20080703/p2

に書かれているように、モダンなPerlの作法がつまったPlaggerを読むのが一番いいらしいです。
なので、おじいさんもそろそろ初心者脱出したい!という事でPlaggerをちらりと読んでみました。
もちろん、すぐに読める程度の小さなものではないので、徐々に読んでいくつもりです。

とりあえず、Plaggerは以下からDL出来ます。

 http://search.cpan.org/~miyagawa/Plagger-0.7.17/

DLして、解凍解凍。Plagger-0.7.17でした。
でもって、まず直下においてあるPlaggerファイルを見てみる。


#!/usr/bin/perl
use strict;
use warnings;
use FindBin;
use File::Spec;

use lib File::Spec->catdir($FindBin::Bin, 'lib');
use Plagger;

use Getopt::Long;

my $config = File::Spec->catfile($FindBin::Bin, 'config.yaml');
GetOptions('--config=s', \$config, '--version' => \my $version);
Getopt::Long::Configure("bundling"); # allows -c -v

if ($version) {
    print "Plagger version $Plagger::VERSION\n";
    exit;
}

Plagger->bootstrap(config => $config);



おじいさん的なポイントです。
まず最初に、use strictuse warningsが入っています。これは必須。
File::Spec->catdir($FindBin::Bin, 'lib')は、use lib qq{$FindBin::Bin/lib};とほとんど同じです。ただし、いろいろなOSで使えるように、Filie::Specを使ってディレクトリ名を生成しているわけです。

 File::Spec
 http://search.cpan.org/~kwilliams/PathTools-3.2701/lib/File/Spec.pm

続いて、use Getopt::Longなんですが、引数処理の定番ですね。
その辺から引数をごにょごにょいじってますね。

で、最後にPlagger->bootstrap(config => $config);でPlagger実行。
lib/Plagger.pmの中のメソッドを呼び出しているわけです。
とりあえず、このファイルは終わり。

次はPlagger.pmかー。その前にPlaggerをちょいと使ってみるかな(オイ(^-^;))
や、使い方を覚えるのには、ソース読むのもいいんですよ。
ちなみに、Plagger.pmに入るとClass::Accessor::Fastやらopen my $fhなんかの構文が出てきます。
この辺から本当にモダンなPerlになっていくんじゃないかと。


余談なんですが、ホットなPerlはMooseなんでしょうけれど、そのホットなPerlを勉強するためにちょうどいいモジュールってなんでしょうかね?
そのうちどなたかのエントリが立つんでしょうから、それを待ってちらりと見ますかね。



設定テーマ

関連テーマ 一覧

月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文