|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Sapozhnikov 2:5020/400 14 Mar 2002 23:53:07 To : Alex Dedul Subject : Re: объединение нескольких выражений с помощью && -------------------------------------------------------------------------------- Alex Dedul wrote: > Возник небольшой вопрос касательно использования && для объединения > нескольких выражений в одну строку. Пишу следующее > > /str:([^\s]+)/ && $resent{$1} = 1 for(<LIST>); > > и получаю ошибку > > Can't modify logical and (&&) in scalar assignment at m.pl line 1, near "1 > for" Все правильно. Учите приоритеты операций. > Ладно, заключаю присваивание $resent в eval > > /BOOK:([^\s]+)/ && eval('$resent{$1} = 1') for(<LIST>); Вот это уже совсем лишнее. /BOOK:([^\s]+)/ && ($resent{$1} = 1) for <LIST>; или лучше: /BOOK:([^\s]+)/ and $resent{$1} = 1 for <LIST>; будет правильным решением. > и все прекрасно проходит. В чем тут дело ? Вопрос чисто академического > плана, поэтому советы переписать это иначе или довольствоваться тем что есть > не катят. Именно переписать. eval здесь применен без всякой причины, а выполняется он очень долго. > Продублируйте ответ в нетмэйл, плиз, на линке висит около сотни метров > фэх. И не подумаю. Я тут резвлюсь. Андрей --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/528409bb23ab.html, оценка из 5, голосов 10
|