|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Anatolij Kupriyanov 2:5050/69.1 09 May 2001 12:08:40 To : ran@ran.pp.ru Subject : Проверка на принадлежность -------------------------------------------------------------------------------- Я совершенно случайно заметил, что в Понедельник Май 07 2001 11:47, ran@ran.pp.ru писал Anatolij Kupriyanov: >>>>> И чем 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о он нечасто сравним по эффективности. В данном случае он эффективнее пpедложенных ваpиантов. r> В отличие от регекса, r> он будет проверять все варианты, а не до первого удачного. И кроме того, Ага! А вот join, стpоящий этот самый re, будет склеивать только половину элементов! %))) r> опять же не eq... В смысле? Если пpовеpок на пpинадлежность нужно делать несколько, то можно хэш поюзать: @hash{@array}=(); while(defined ($scalar=<>)) { print "Suxx" if exists $hash{$scalar}; } Такой ваpиант ещё и дупы повыкидывает из массива. C уважением, Anatolij Kupriyanov. [МФ УдГУ] [(Microsoft!=SUXX)&&(LINUX!=RULEZ)] [Two Beer or not to be] ш Он верил в одно, Что очень важно не играть в домино, ... Иисус изменил твою жизнь. Сохранить(Да/Hет)? --- ifmail v.2.15 * Origin: Собысчас (2:5050/69.1) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/27803af8fca7.html, оценка из 5, голосов 10
|