Perl

格子点の生成

任意次元の格子点を(大量のメモリを使うことなく)生成するコードを出来るだけ汎用的に書いてみるテスト。 Python ならかなり簡単に書ける。generator(コルーチン)万歳。 def mesh(*points): if len(points) == 1: for x in points[0]: yield [x] else: for p…

Inplace-Edit #3

Can't do inplace edit on foo.txt: Permission denied at test.pl line 5.などと言われてfoo.txtが空っぽになってしまいました・・・(;´Д`)ウウッ…こういう挙動はWindowsならではという感じがするけど。。。 へ?と思って Windows + Perl (Cygwin) でやってみる…

Inplace-Edit

ref:holidays-l開発ブログ - Perlで既存のファイルを書き換える時のBest Practicesは? えー、null filehandle を使うときは素直に inplace-edit を使えばいいんじゃないでしょうか。 $^I = ""; # or $INPLACE_EDIT = ""; while (<>) { s/foo/bar/; print; }…

Inplace-Edit #2

ref:holidays-l開発ブログ - Perlで既存のファイルを書き換える時のBest Practicesは? 下のエントリの続き。 元記事で条件を端折ってしまったのですが、ファイル一覧はスクリプト内で生成されるので、INPLACE_EDIT(や、ワンライナー)は使用できないように…

null filehandle の エンコーディング

Perl で、標準入力のエンコーディングを指定するには binmode を使えばいいけど、 while (<>) { }な null filehandle を使うときは use open を使わないといけない罠。 まぁ、当然といえば当然だけど、知らなかったらはまるよな。引数を指定せずにパイプかリ…

Perl は 1ファイルに複数のパッケージを書けるはず・・・

ref:methaneの日記 - Stateをクラスにする訳 1クラス1ファイル・・・だったはず、間違っていたらスマソ 違いますよ、と突っ込もうと思ったけど、自信がないので確認(おぃ)。 % cat test.pl package A; use strict; use warnings; use vars qw($VERSION); $VERSI…

「Perl, Python, Ruby の比較」があまりにもいい加減な件

ref:Perl, Python, Ruby の比較 ref:はてなブックマーク - Perl, Python, Ruby の比較 ref:はてなブックマーク - Perl, Python, Ruby の比較 ちょっと遅くなったが以前宣言したとおり、書いておく。 「Perl, Python, Ruby の比較」はどうも調査が足りないの…

Xangoのサンプルスクリプト

昨日のエントリに軽くブックマークが付いているようなので、サンプルスクリプトをさらしておく。 サンプルの割りに依存ライブラリが多いとか、やたら長いとかはまぁ勘弁。とりあえず Xango::Broker::Push のほうを。 #!/usr/bin/env perl #sub Xango::DEBUG …

Xango and crawler

クローラを作る必要に迫られているので、Crawler Framework の Xangoや、crawlerを試してみたり。 POEを全然使ったことがないせいか、Xangoのほうは最初付属のPODを呼んでも全然分かんなかったんだけど、そこは Plagger::Plugin::Aggregator::Xango とか、t/…

はてなキーワード抽出の確認

上のエントリのスクリプトの動作確認。 とりあえず抽出ミスがないかどうかだけ確認。 #!/usr/bin/env perl use strict; use warnings; if (@ARGV != 2) { printf STDERR "usage: %s keywordlist keywordlist.extracted\n", $ARGV[0]; exit 1; } open my $rfh…

CPANモジュールをdebパッケージ化する

Debian系ディストリビューションには CPAN モジュールを deb パッケージにしちゃう dh-make-perl つうプログラムがあるんだが、これは Module::AutoInstall を使ったモジュールでは使えないらしい。というか正確には中で使っている Module::Depends::Intrusi…

CPANモジュールのテストと依存性のメンテ

Net::Delicious は 1.0 で Net::Delicious::Constants::Api が削除されたのに、テストコードに use_ok("Net::Delicious::Constants::Api") なんて書いていて、テストでこける罠。メンテナのマシンでは /usr/local 以下あたりに古いコードが残っていてテスト…

Crypt::SSLeay のインストール

CPANモジュールをざくざくインストールしてたら、Crypt::SSLeay がテストでこける。ぐぐったらopenssl-0.98aからopenssl-0.97にスイッチしたらいけたって報告があったので、これかなと思ったわけだけど、Ubuntuは openssl0.98 と libcrypt-ssleay-perl の組…

PPerl

Perl Hacks読んでたらPPerlなんてのが紹介されてた。 This program turns ordinary perl scripts into long running daemons, making subsequent executions extremely fast. It forks several processes for each script, allowing many proceses to call t…

Data::Dumper

Perl Hacks 読んでて初めて知ったんだけど、Data::Dumper ってデータ保存のモジュールだったのね。今までデバッグ用のモジュールだとばかり思ってた。

CGI::Application + Tempalte-Toolkit メモ

CGI::Application で TT2 を使うときのメモ。 TT2の設定 Template::Provider::Encoding と Template::Stash::ForceUTF8 を使うようにしておく。 use CGI::Application::Plugin::TT; use Template::Provider::Encoding; use Template::Stash::ForceUTF8; __PA…