Perlプログラムに関する各種メモ書き

スペースで区切られた複数のキーワードが全てマッチするかどうか調べる

検索エンジン等の入力で「Perl テスト 方法」と入力すると「Perl」「テスト」「方法」全てにマッチする結果が表示されるが、こういうのをやっているcpanモジュール探してみたのだけれど見つからなかったので、簡単に書いてみる(超簡易バージョン)

# usage
# listmatch($data,$search_str_not_separated);
# listmatch(検索されるデータ(文字列), スペースで区切られた検索したい単語(文字列))
# 戻り値 1:マッチした 0:マッチしない

sub listmatch{
	my ($data, $search_str_not_separated)=@_;
	$search_str_not_separated=~s/ / /g;
	my @search_list=split(/?s/,$search_str_not_separated);
	my $s; my $flag=1;
	foreach $s(@search_list){
		unless($data=~m/?Q$s?E/i ){ $flag=0; }
	}
	if ($flag==1){ return 1; }
	else { return 0; }
}
No.326
08/22 14:53

edit