perl基本



2009 8月28日

system関数やパイプを使って外部プログラムを実行する時は
汚染チェックを必ずする。

エスケープするべき文字

& ; ` ' \ " | * ? ~ < > ^ ( ) [ ] { } $ \n \r

以下の置き換えで全てをエスケープすると良い。

s/([\&\;\`\'\\\"\|\*\?\~\<\>\^\(\)\[\]\{\}\$\n\r])/\\$1/g;

参考:http://www.stackasterisk.jp/tech/program/perl02_02.jsp







2009 4月8日

例えば

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);}
}

などとしよう。







2009 3月30日

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

@list= (1,2,3,4);
$” = ‘,’;
print “@list”;

実行結果

1,2,3,4

ただし、

print @list;

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