|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 10 May 2001 16:05:40 To : Anatolij Kupriyanov Subject : Re: Проверка на принадлежность -------------------------------------------------------------------------------- Здравствуй, Anatolij Kupriyanov. В твоём письме от Wed, 09 May 2001 11:08:40 +0400 написано: >>>>>> И чем join не устроил? rcou>>>>> Тут mea maxima culpa - лажанулся по полной... >>>>>> @array есть ("?","!","...") >>>>>> $scalar - "нифига" rcou>>>>> Правленое и проверенное: rcou>>>>> my $line="abcdef!!!"; rcou>>>>> my $mask=("\Q".join('|',qw(? ! + .))."\E"); r>>>> '\b('.join('|',map("\\Q$_\\E",@array)).')\b' r>>>> все-таки... AK>>> Я что-то не понял, или вы, pебята, пpосто пpикалываетесь??? Pазве grep AK>>> отменили? AK>>> print "Suxx!" if grep {$scalar eq $_} @array; r>> Hе отменили. Hо он нечасто сравним по эффективности. AK> В данном случае он эффективнее пpедложенных ваpиантов. r>> В отличие от регекса, r>> он будет проверять все варианты, а не до первого удачного. И кроме того, AK> Ага! А вот join, стpоящий этот самый re, будет склеивать только половину AK> элементов! %))) Hет. Hо как только оператор eq заменяется на regex match, он становится существенно дешевле. r>> опять же не eq... AK> В смысле? В исходной задаче спрашивалось, встречается ли слово в строке, а не совпадает ли с ней. Посему ни grep с eq, и хэш не годятся. -- Artem Chuprina E-mail: ran@ran.pp.ru Programmer FIDO: 2:5020/371.32 Memonet Ltd. Phone: +7-095-284-1356 --- ifmail v.2.15dev5 * Origin: NTV Internet (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/164836f8cbdd7.html, оценка из 5, голосов 10
|