2007年02月18日

Perl小技メモ2

前回のPerl小技メモ1に続いて、調べたことの備忘録。CPANなどでいろいろなモジュールを探していると、たいていのものは見つかるので便利だ。

コマンドの引数を簡単に扱う方法
Getopt::Longで簡単にできる。
use Getopt::Long;
my $DEBUG = 0;
my $HELP = 0;
# コマンドライン文字列を読み込む
GetOptions('debug=i' => \$DEBUG,
'help' => \$HELP);
これで、コマンドの引数に--debug=1と指定されたときに、$DEBUGに1が入る。また、--helpとすると$HELPが真になるので、これをifで判定してhelpメッセージを出力する処理を入れればよいことになる。

簡単にWebサイトから情報を取得する方法
有名なlibwww-perlを使う。このモジュールの名前はかなり昔に聞いたことがあったんだけど、実際に自分で使う機会はなかなかなかった。今回使ってみてあまりの簡単さに驚いた。
use LWP::Simple;
my $content = get("$url1");
my @lines = split ('\n', $content);

LWP自体はもっと複雑なこともできるらしい。必要に応じて調べてみよう。

Webから取得したファイルのTableタグから必要な情報を取り出す方法
いろいろとCPANとGoogleとで調べていたら、HTML::TableExtractというモジュールを見つけた。これはかなり強力で、表のヘッダとなるタイトルを指定すると、それに対応する値を簡単に取得できる。
use HTML::TableExtract;
my $te = new HTML::TableExtract(headers => [qw(日付 始値 高値 安値 終値)]);
$te->parse($content);
foreach my $row ($te->rows) {
my ($date, $open, $high, $low, $close) = @$row;
}


年月日から曜日を割り出す方法
Date::DayOfWeekというモジュールで簡単にできる。
use Date::DayOfWeek;
my $dow = dayofweek($day, $month, $year);
0〜6までの数値で返し、0が日曜、1が月曜…、6が土曜となる。試してはないけど、日本の祝日を割り出すDate::Japanese::Holidayというのもあるらしい。他の国のモジュールもいくつかあった。

perlでグラフを簡単に書く方法
グラフというか、画像関連で有名なモジュールはGDである。Graph用にはGD::Graphというのがあり、これを使えば簡単に書ける。データは二次元配列で記憶させることになる。なお、GDはActivePerl 5.8では普通にppmでinstall使用としてもできなかった。Webでいろいろと調べたところ、これは有名な問題らしく、他のサイトで公開されているものを使用すればよかった。前回のWin32::DDEのときに紹介したのと同じサイトを使ってinstallできた。GD::Graphは簡単なグラフを作るときには便利だけど、ちょっと複雑なグラフを作ろうとすると機能的に足りなそう。やはりGDを使っていろいろと工夫しないといけないんだろう。今後いろいろと試してみる予定。
ラベル:Perl
posted by mako at 00:36| 東京 ☔| Comment(0) | TrackBack(0) | メモ(PC・インターネット関連) | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。