perlによって2つの変数に文字列を格納し、それらが一致するかどうかを出力するプログラムを作成しているのですが思うようにいかず困っております。
for (my $k = 0; $k <= 2; $k++){
if(index($word,$dlist[$k]) > -1){
$vec[$x] = 1;
}else{
$vec[$x] = 0;
}
print "$vec[$x],$word,$dlist[$k]";
$x = $x + 1;
}
}
dlistの各要素に文字列が格納されており、各要素についてwordとの比較を行います。
一致した場合は先に用意しておいた配列xに1を、一致しない場合は0を代入させていき、vec,word,dlistをそれぞれ出力させます。
しかしながら、実際に実行してみると文字列が一致した場合にもvecには0が格納されています。
出力例
0,りんご,りんご
0,りんご,みかん
0,りんご,ぶどう
indexによる比較で、$dlist[$k]を試しに"りんご"という文字列に差し替えてみると、正しく比較が行われます。
出力例
1,りんご,りんご
1,りんご,りんご
1,りんご,りんご
変数同士の比較がうまく言っていないのでしょうか?
ご教授お願いいたします。
追記:indexの比較の際、改行コードが片方のみに隠れて存在する場合、indexは一致すると判断してくれるのでしょうか?
indexは改行コードの有無も参照しますか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。