mieki256's diary



2009/05/22(金) [n年前の日記]

#3 [prog] Perlから外部プログラムを実行する方法でハマる

親父さんのために作成したPerlスクリプトからエクスプローラを起動してるのだけど、エクスプローラを閉じないとPerlスクリプトが終了しないとか、エクスプローラが無反応になるとか、色々不具合が。

system()でエクスプローラを起動してるのがまずかったらしい。起動したソレの結果が返ってくるまでそこで処理待ちをしてしまう模様。exec() なら、Perlスクリプトは終了してしまうけど、固まりにくくなる、ような気がする。

エクスプローラの起動の仕方ももしかするとちょっとまずかったかもしれず。explorer "C:\hoge\fuga" で起動してたけど、explorer /e,"C:\hoge\fuga" のほうがよいのだろうか。

htmlを解析して画像ファイルリストを取得するようにもしてみたり。 :

HTML::TreeBuilder を使って、ホームページビルダーで作成された画像サムネイル一覧htmlから画像ファイル名を取得する機能もつけた。
use HTML::TreeBuilder;

my $tree = new HTML::TreeBuilder;
$tree->parse_file( "gallery.html" );
$tree->eof();

foreach my $tag ($tree->find("a")) {
	my $ text = $tag->as_HTML;
	$text =~ s/\n//g;
	next unless $text =~ /<a href[^>]+><img[^>]+><\/a>/;
	my $imgname = $tag->attr('href');
	$text =~ /<a href[^>]+><img.+src=\"([^\"]+)\".+><\/a>/;
	my $thumbname = $1;
	print "$imgname, $thumbname\n";
}

$tree = $tree->delete;
こんな感じの処理で。

以上です。

過去ログ表示

Prev - 2009/05 - Next
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project