カテゴリー
perl

eval{}; 中のreturn(); に注意

例えば

sub xxx{
eval{
my $a=1;
if($a){return(0);}
};
}

if(&xxx){print"abc";}
else{print"def";}

などとするとうまくいかない。

sub xxx{
eval{
my $a=1;
if($a){die;}
};
if($@){return(0);}
}

などとしよう。

カテゴリー
perl

配列をプリントする時の区切り文字を変える

配列をprintする時の区切り文字を変えるには $" に代入するだけ。

@list= (1,2,3,4);
$" = ',';
print "@list";

実行結果

1,2,3,4

ただし、

print @list;

"" (だぶるクォート)無しだと反映されない。

カテゴリー
perl

ただ単にダミー画像をperlで表示するだけのルーチン

CGIでダミー画像(GIF)を表示するだけのスクリプト。
画像データ必要なし。

my @dummy = (
"47","49","46","38","39","61","08","00","08","00","80","00","00","00","00","00",
"FF","FF","FF","21","F9","04","01","00","00","01","00","2C","00","00","00","00",
"08","00","08","00","40","02","06","8C","8F","A9","CB","ED","5D","00","3B" );
print "Content-type: image/gif\nPragma: no-cache\n\n";
binmode(STDOUT);
foreach (@dummy) { print pack('C',hex($_)); }


・・・と思ったら、面白い記事を発見
1px透過GIF・PNGの最小base64表現
http://mayokara.info/note/view/328

カテゴリー
perlモジュール

perlでHTMLから本文を抜き出せるモジュール HTML::ExtractContent 他

HTMLから本文を抜き出せるモジュール

HTML::ExtractContent

作者:伊奈林太郎(id:tarao)
解説スライド:http://up.orezdnu.org/papers/Kansai.pm/2009-03-22/slide.pdf
参照:http://perl-mongers.org/2008/10/extract-content-from-html.html

HTML::ContentExtractor
参照:http://d.hatena.ne.jp/tohtas/20081102/1225642884

HTML::ContentExtractor + Lingua::JA::Summarize::Extract
参照:http://naoya.g.hatena.ne.jp/naoya/20070324/1174712425

HTML::Feature
参照:http://d.hatena.ne.jp/download_takeshi/20071026/1193410600

カテゴリー
perl

useでライブラリを重複呼び出した場合

package abc;
use CGI;
・・・略
package def;
use CGI;


このようにuseで複数回モジュールを呼び出した場合はどうなるのか?

どうやらPerlは内部でuseしたライブラリ名を記憶していて、同じモジュールをuseしない(2回目のuseは無視)ようになっているので、二カ所(またはそれ以上)で同じモジュールをuseしても、全く問題無い。