miau's blog?

| 1 |

2005年 2月 01日 (火曜日)

STDOUT

- Perl on miau's blog?
共通関数のテストをしてる、みたいなことを書きましたが。
その中の関数で、エラー時にそのままprint "$!";みたいなことやってる関数がありました。

いや・・・標準出力以外に出力したくなったらどうするんですか。
Web サイトとかだとそのままユーザの画面に出力ですか。
ファイルハンドル受け取ってそこに出力できるようにするとか、もっと testability というものを考えて(ry

なんてことを思ってましたが、結構どうにでもなるんでした。そういえば。

my $stdout;
{
local *STDOUT;
open(STDOUT, ">", \$stdout) or die "can't open STDOUT: $!";
print "hoge"; # "hoge" は $stdout に格納される
}
print "fuga"; # ここでは標準出力に吐かれる

こんな感じ。
ラクダ本だかなんだかでちゃんと読んだはずなのに忘れてた。

ちなみにうまくいってるか確認しようとして、local なスコープ内でprint $stdout;とかやって「あれー?うまくいかないなー?」とかやって数分格闘してた。
色々まだまだだ。
21:09:46 - miau - 1 comment - No Trackbacks - Permalink

2005年 2月 02日 (水曜日)

Perl Design Patterns

- Perl on miau's blog?
なんかググってる最中にたまたま見かけたページ。

Perlish Patterns: Secrets of the Cpan Masters

へー・・・なんか面白そうな本だけど、情報が少なすぎるな。
と、Amazon.com のほうで検索してみた。


なんか検索しても出てこない。どういうこと?

ということでさらに調べてみると・・・

PERL Miscellaneous - "Perlish Patterns" by Phil Crow

Could be any number of reasons why a book would get cancelled, but often
it's because the publisher doesn't think it will sell (i.e., they try
preselling the book and if they don't get enough orders they don't go to
press with it). If you're really that interested, though, why not try asking
the author directly:

http://www.perl.com/pub/au/Crow_Phil

なんて書き込みが。
よくわからないけど、結局出版中止ってこと?

でもとりあえずリンク先見ると参考になりそうな記事があったので、とりあえずメモ。
あと公式サイトぽいのも立ち上がってるのでメモ。

Perlish Patterns
19:13:57 - miau - No comments - No Trackbacks - Permalink

2005年 2月 23日 (水曜日)

Win32::IE::Mechanize

- Perl on miau's blog?
Win32::IE::Mechanize なんてモジュールを MFPM で発見。
OLE で IE を動かすんだけど、WWW::Mechanize っぽいインターフェイスを備えてるという特長が。

WWW::Mechanize と違って JavaScript や特殊な redirection にも対応できるということで、Web アプリのテスト自動化(独自の Testing Framework 構築とか)に使ったりできないかなー、とか企んだりもしたんですが・・・
実際やってみるとなんか動作重くて使い物にならなそうなことがわかりました

非効率な実装になってるのかなー?と思って軽くソースを覗いたりもしたけど、一応キャッシングなんかもしてるっぽいし・・・。
今後そういう応用を真面目にやりたくなったら再調査してみます。
00:18:17 - miau - No comments - No Trackbacks - Permalink

Win32::CaptureIE

- Perl on miau's blog?
Win32::CaptureIE
また MFPM で見つけたモジュール。

Win32::IE::Mechanize と違ってインターフェイスは特殊だけど、
・そのぶん柔軟な設定が可能(?)
・スクリーンショットが取れる
といった感じの特徴が。


依存関係は↓な感じ。

Win32::CaptureIE
 + Win32::Screenshot
 + Image::Magick

(ActivePerl に Image::Magick 入れる方法は
 きりしま屋: WindowsにImage::Magickをインストールする
 を参照ということで。)


使ってみた感じでは・・・OO っぽくないインターフェイスがやっぱり気に食わないですけど、一応ちゃんと機能しています。
Win32::IE::Mechanize よりも動作軽い気も。

とりあえず Web サイトの画面遷移図とか作るのに使えな気が。
00:24:12 - miau - No comments - No Trackbacks - Permalink

Win32::IE::Mechanize と Win32::CaptureIE

- Perl on miau's blog?
CaptureIE もいいけど、やっぱり Mechanize っぽいインターフェイスが使いたいなと思いまして。
2 つを強引に連携させてみました。

まぁ両方とも OLE 使って IE 操作してるだけなので、ウィンドウハンドルを共有すれば結構あっさり実現できます。

(1) Win32::CaptureIE::StartIE() を真似て Win32::CaptureIE::SnapIE() なんて関数を作成
(2) 上記関数に Win32::IE::Mechanize のオブジェクトを渡す
(3) Mechanize 側の関数で画面遷移した場合は Win32::CaptureIE::GetDoc() を呼び出してなんか設定してやる

みたいな感じで。

でもやっぱり実装が汚い感じになってしまうわけで。
CaptureIE のほうのインターフェイス改善して欲しいなー、とか思ったりも。

あと上記 (3) の部分。
Mechanize 側の関数で画面遷移するたびに GetDoc() の呼び出しとか面倒だから、Aspect モジュールや Class::Trigger モジュールで一括設定とかできないかなーとか思ったりも。

まぁ結局 Mechanize の動作が重くてやる気喪失中なわけですが。
00:38:16 - miau - No comments - No Trackbacks - Permalink

ImageMagick

- Perl on miau's blog?
仕事で「ある Web ページを複製して別会社に提供する」みたいな要望がありまして。

まぁ HTML やら CGI のソースをファイルコピーするだけで実現できるんですが、新ページから旧ページの画像を参照とかしてないかチェックしたくて、新ページの方は画像の色相を変更することにしました。
[Read More!]
00:52:59 - miau - No comments - No Trackbacks - Permalink

2005年 2月 25日 (金曜日)

Pod の書き方

- Perl on miau's blog?
思いついたこととかメモ。
[Read More!]
01:04:57 - miau - No comments - No Trackbacks - Permalink
| 1 |