今のプロジェクト、バッチ処理が全部 Perl で記述されてたりします。
で、私は現在このバッチ処理周りを見てることが多いです。
そんなわけで Perl の話題も溜まってきたので適当に。
■Pod - Plain Old Documentation
それっぽい本を読んだ人は知っていそうですが、Java でいうところ javadoc を低機能にしたようなやつです。
例えば、
=head1 NAME
Modern - I am the very model of a modern major module
=cut
みたいにしてスクリプトのタイトルつけたり、
=item snazzle
The snazzle() function will behave in the most spectacular
form that you can possibly imagine, not even excepting
cybernetic pyrotechnics.
=cut
sub snazzle {
my $arg = shift;
....
}
みたいに関数にヘッダをつけたりできるわけです。(ラクダ本のサンプルをほぼそのまま引用)
これが、今回のプロジェクトでも使われてるみたいで。
(実際使われてるのは CPAN 以外では初めて見たんですけど)
早速 pod2html で変換してみたわけですが・・・Pod の書き方でちょっと手を抜いてると以下のようなエラーが。
>pod2html irclog2html.pl > irclog2html.html
C:\Perl\bin\pod2html.bat: no title for irclog2html.pl.
C:\Perl\bin\pod2html.bat: irclog2html.pl: unexpected =item directive in paragraph 16. ignoring.
前者のエラーは、=head1 NAME の後のフォーマットが不正だった場合に発生。
詳しくは
dBforums - Pod2html acting strange 参照。
後者は、=item の前に =over の指定がなかった場合に発生。
=over が HTML でいうところの <li> で、=item が <ol> とか <ul> に相当するような感じなので。
■EUC-JP の Pod を Windows 上で変換すると・・・
下手すると IE でうまく表示できなくなったりします。
原因は =item ほげ のように item 部分で日本語を使っている部分が文字化けするせいらしいです。
現象をちょっと追ってみると、pod2html では =item HOGE とか書いてある部分を <a href="〜.html#hoge"> というように小文字に変換してリンクを生成するようで。
そのへんで変なことになってるんでしょう。
とりあえず
・Firefox で表示する
・いったん Shift-JIS に変換してから pod2html にかける
・=item では日本語は使わない
といったあたりで対応できそうです。
もしかすると UNIX 環境とかの pod2html ではうまく処理されるのかもしれませんけど。
■PerlEdit
PerlEdit Home Page - IDE for Perl - Perl IDE - Text Editor
なんか本読んでて Perl2Exe の存在を知ったわけですが、同じサイトにあったので試してみました。
が、
・行頭にタブを入れるとカーソルの表示位置がずれる
(カーソル表示位置の 4 文字手前で操作しないとダメになる)
・実行時のカレントディレクトリが PerlEdit のインストールパスになるので入出力がめんどくさい
・勝手に .pl ファイルを関連付けされる
・その上シェアウェア
ということで即効アンインストールしました。
編集機能も貧弱ですし、SciTE とか使ったほうがいいです。絶対。
■Perl & サクラエディタ
そういえば自宅マシンには SciTE 入れてないので、サクラエディタで作業を再開したわけですが。
サクラエディタの強調キーワードは Pod に対応してないわけで。
自分で設定しようとしたわけですが・・・正規表現キーワードは複数行にまたがった設定ができないので使えず。
仕方ないので
・=head 〜 =cut
・=item 〜 =cut
あたりをブロック型のコメントスタイルに設定しておきました。
無いよりはマシでしょう、たぶん。