miau's blog?

最近の Perl (おもに Pod 周り)

今のプロジェクト、バッチ処理が全部 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

あたりをブロック型のコメントスタイルに設定しておきました。
無いよりはマシでしょう、たぶん。
posted at 01:54:57 on 2004-11-29 by miau - Category: Perl No Trackbacks - Permalink

TrackBack

このエントリにトラックバックはありません
現在トラックバックは受け付けていません。

Comments

No comments yet

Add Comments

現在コメントは受け付けていません。
お手数ですが、 こちら のコメント欄にでも記載していただければと思います。