miau's blog?

| 1 |

2005年 1月 05日 (水曜日)

EPIC

- Perl on miau's blog?
EPIC - Eclipse Perl Integration

Perl での開発を Eclipse 上で行うためのプラグイン。

ハイライト表示、変数名やメソッド名の補完機能、テンプレートの使用、PerlDoc との連携、文法チェック、デバッグ支援となかなか便利そうな機能が揃ってます。

ですが、私が今やってる作業は保守っぽい作業なので、他人のコードを読むことのほうが多いわけで。
そういう視点で見ると、

・use や require してるモジュールの一覧が表示されるわりに、そのモジュールのソースにジャンプできない
・タグジャンプの機能がない

あたりがかなり不便。
そんな感じで、ソース読むだけならサクラエディタ+ctags とか使ったほうが便利っぽいです。


あと、その他目に付いた問題点。

・文字コードの自動判別ができない
・日本語表示しているせいか改行コードのせいか、エラー表示の位置がずれる


その他「あったらいいのに」的機能もついでに。
# こういう機能がついてるエディタ等ご存知な方は教えてください

・Pod から HTML 等の生成
・Test::Inline 等の実行
22:54:05 - miau - No comments - No Trackbacks - Permalink

2005年 1月 06日 (木曜日)

Perl でパスワード入力

- Perl on miau's blog?
ちょっと忙しいので小ネタ。

最近 Spidering Hacks の影響で LWP::UserAgent やら WWW::Mechanize を使うことが多いんですが、パスワードによる認証が必要なページとかもありまして。
今まではパスワードをソースコードにベタ書きしてたんですが、配布しやすいようにユーザに入力を求めるようにしたいなと。
でも普通に STDIN 使うと入力が画面に表示されてしまうわけで。

何か良い方法はないかなということで調べてみると・・・FAQ(perlfaq8) にありました。

use Term::ReadKey;

ReadMode('noecho');
$password = ReadLine(0);

だそうで。

ppm install TermReadKey とかやってインストール→試してみるとあっさり成功。

これで怪しげなスクリプトもそのまま配布できるように。
23:17:45 - miau - No comments - No Trackbacks - Permalink

2005年 1月 17日 (月曜日)

ActivePerl + CPAN

- Perl on miau's blog?
先日 My Favorite Perl Modules というのを教えてもらいまして。
面白そうなモジュールがいくつかあったんですが、実は ActivePerl では PPM に頼りっきりなので CPAN からのインストール方法知らないんですよね。

ということで調べてみると・・・

Perlモジュール/インストール(CPAN) - ActivePerl+CPANによるモジュールインストール方法。

というまさにそのまんまのページが。


んー・・・tar とか gzip とか色々インストールしないといけないのか・・・面倒そうだなー・・・。
と思ったら家のデスクトップには cygwin とか VisualStudio とか入ってるので特に何もインストールする必要はない様子。

ということで早速やってみたんですが・・・つまづきまくりましたのでメモ。

・ファイアウォール内にいるので普通に ftp は使えない。
 t e s t d r i v e - Perl 5.8.0インストールメモ によると FTP_PASSIVE=1 を設定してから実行する必要があるとのことで、
>set FTP_PASSIVE=1
>cpan

 とりあえず OK。

・初期設定完了後、実際にモジュールをインストールしようとすると、途中で
  G:\Microsoft Visual Studio\VC98\bin\nmake.EXE  -- OK
Running make test
'G:\Microsoft' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
G:\Microsoft Visual Studio\VC98\bin\nmake.EXE test -- NOT OK

 とかなんとか言ってコケる。
# VisualStudio が変なドライブに入れてますが、とりあえず気にしないでください。

 スペースが入ってるのがまずいんだろうけど、真っ当な解決方法わからないので・・・とりあえずショーとネームで指定すればいいんだろう、ということで。
 ショートネーム調べるのは↓な感じ。

G:\>dir /x micros*
ドライブ G のボリューム ラベルは Apps です
ボリューム シリアル番号は B0F8-535E です

G:\ のディレクトリ

2003/11/30 20:51 <DIR> MICROS~1 Microsoft Chat
2003/11/30 20:51 <DIR> MICROS~2 microsoft frontpage
2003/11/30 20:52 <DIR> MICROS~3 Microsoft Office
2003/11/30 20:52 <DIR> MICROS~4 Microsoft Reference
2003/11/30 20:59 <DIR> MIAF9D~1 Microsoft Visual Studio


 MIAF9D~1?なんか変だけどまぁ置いといて。
 cpan のシェル上で

cpan>o conf make G:\\MIAF9D~1\\VC98\\bin\\nmake.EXE


 とすれば OK。面倒だから初期設定時にちゃんと設定しておいたほうがいいです。


そんな感じで cpan のシェルは普通に使えるようになったけど、モジュールインストール時にテストでコケる・・・。
手動でコピーするかな・・・。
02:21:43 - miau - No comments - No Trackbacks - Permalink

2005年 1月 20日 (木曜日)

Perl の Testing Framework とか

- Perl on miau's blog?
仕事で「Perl で作った標準関数の単体テストをやるように」という指令が来まして。
まぁ色々メモ。

(2005/01/21 ちょっぴり追記)
[Read More!]
19:06:11 - miau - 1 comment - No Trackbacks - Permalink

2005年 1月 21日 (金曜日)

ActivePerl + CPAN 補足

- Perl on miau's blog?
PPM を使わずにモジュールをインストールした場合、そのモジュールの Pod はインストールされますけど HTML はインストールされません。
# PPM 使ったら OK なのかも未確認ですが → 確認しました(2005/01/24)

perldoc コマンドでも最低限のことはできるけど、Windows 2000 の more コマンドがヘッポコなもんだから使いにくいことこの上ない。

ということで、スタートメニューから行ける ActivePerl User Guide に HTML を追加する方法。

perl -MActivePerl::DocTools -e "UpdateHTML()"

これだけでいけるっぽいです。



(2005/01/22 修正)
UpdateHTML はちゃんと @EXPORT に入ってたのでパッケージ指定消しました。



(2005/05/09 補足)
冗長なのが嫌いなら、↓でもいけます。念のため。

perl -MActivePerl::DocTools -eUpdateHTML



(2005/12/01 補足)
ActivePerl 5.8.7.815 以降ならたぶんこういうの不要。
ExtUtils::MakeMaker now generates and installs HTML documentation automatically.
Regardless how modules are being installed
(via PPM, through the CPAN shell, or by manual compilation and installation),
the HTML documentation is always kept up-to-date.

ということらしいので。
08:31:15 - miau - No comments - No Trackbacks - Permalink

2005年 1月 25日 (火曜日)

Devel::Calltree

- Perl on miau's blog?
仕事で共通関数のテストをやってることは以前書いた気がしますけど。
仕様がわからない関数があってテストのやりようがなかったりも。

とりあえず「こういう場合はどういう動作が正しいんですか?」みたいな質問を送ると「この関数ってどこで使われてます?」みたいな質問が返ってきて。
結局すべての共通関数に関して呼び出し元を調べる必要があるんだろうなー、と。

で、Perl には C でいうところの cflow みたいのないかなー?
ということで見つけたが Devel::Calltree。

でもなんかうまく実行できなかったり。

Re: Perl call tree utility

とかで紹介されてるほうのモジュールでも似たようなエラーが。

Re: CallTree.pm

なんかを参考にバージョンを色々変えてみたけどダメ。


で、結局 Windows 上(ActivePerl)じゃなくて Solaris 上で実行するとあっさり動きました。
丸々一日無駄にした・・・。

まぁ自分の未熟っぷりを再認識するいい機会になったのでよしとしますか。
もっと Perl 勉強しないとなー。
18:07:22 - miau - No comments - No Trackbacks - Permalink

2005年 1月 28日 (金曜日)

Devel::Calltree つづき

- Perl on miau's blog?
関数一覧の出力にはあっさり成功したわけですが、いくつかつまづいてたのでメモがてら。
[Read More!]
20:13:09 - miau - No comments - No Trackbacks - Permalink
| 1 |