Привет всем. Помогите, а то у меня уже крыша едет и ни фига не соображает.
Вот кусок кода:
1 $seek_temp = "
первое
между первое(второе) третье
";
2 @title_words = ("первое", "(второе)", "третье");
3 foreach my $word (@title_words) {
4 $word = quotemeta($word);
5 $seek_temp =~ /$word/;
6 printf("\\n%s EQ %s \\t\\tFIND:%s", $title_words[$#title_words], $word, $&);
7 if ($title_words[$#title_words] eq $word) {
8 $after = substr($\', 0, 50);
9 } else {
10 $seek_temp = $\';
11 }
12 ($before) && ($between .= "->$`");
13 (!$before) && ($before = substr($`, -0, 50));
14 }
Вот что выводит printf:
третье EQ \\п\\е\\р\\в\\о\\е FIND:первое
третье EQ \\(\\в\\т\\о\\р\\о\\е\\) FIND:(второе)
\\т\\р\\е\\т\\ь\\е EQ \\т\\р\\е\\т\\ь\\е FIND:третье
Кто-нить сможет объяснить почему на третьей итерации содержимое массива эскейпится?
Проблема убирается если закомментировать 4-ю строку.
:confused:
Заранее писиб