perl文法メモ。

http://blog.kumacchi.com/2010/11/perlalgorithmnaivebayes_1.html
を参考に
NaiveBayesモジュールを使用したベイジアンフィルタを実装しようとしたら
perlの構文で色々引っかかったので整理。文字の置換や削除はphpとはまったく違うなぁ。。



★1perlの構文「ループ制御コマンド」について

「next」
ifの中身が真の場合、nextに続くすべての命令をスキップして、次のwhile繰り返しに進む

while(<>){
next if($name = 'aaaa');
}

「continue」
条件部を再び評価する直前に実行する
下記AとBは一緒。

A:
for($i = 1;$i < 10;$i++){

}
B:
while($i <10){

}continue{
$i++;
}

「last」

現在のループをただちに終了
↓行頭に数字があるとループから出る
while(<>){
last if /^\d/;
}


★2文字の置換について

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/pe_k05.htm
【例】
$a =~ s/ //g; #// 半角空白を削除
$a =~ s/\,/\n/g; #// カンマを改行に変換
$a =~ s/a/b/g; #// a を b に変換
$a =~ s/\n//g; #// 改行コードの削除
$a =~ s/\n/ /g; #// 改行コードを半角空白に変換


ーーーーーーーーーーー

★その他

my $var = undef; #未定義を直接変数に入れる
undef関数は、すでに定義された変数の定義を無効にする。関数の返却値は常に未定義です。


Encode::Guess は、decode に失敗したものをリストから取り除くという動きをする。


>>>>>>