|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : vitus@ice.ru 2:5020/400 01 Feb 2002 20:37:57 To : Aleksey Kotov Subject : Re: Как из списка @list удалить скаляр $num -------------------------------------------------------------------------------- Aleksey Kotov <Aleksey.Kotov@p19.f2138.n5020.z2.fidonet.org> wrote: AK>Долгие лета, Andrey : >>> @list_in = (1001,1002,1003,1004,1005); >>> $num=1003; >>> >>> $rt=join(/=/,@list_in); >>> >>> print "$rt\n"; >>> $rt=~s/$num//; >>> >>> @list_out=split(/=/,$rt); >>> print "@list_out\n"; AS>> Если встречу такой в перловом коде такой "перл" (извините за AS>> каламбур), удавлю и код и, по возможности, автора. AK>Это работает? Работает. Во-пероых, оно не работает. Оно не удаляет элемент, а заменяет его на пустой. Hо допустим, что нам это и надо. Во-вторых, До поры до времени это работает. Рассмотрим список 222, 1001,22, 2222 и удаляемый элемент 22. Делайте ваши ставки, какой будет результат работы данного алгоритма. А если буквовку g где надо поставить? В третьих, представим себе что у нас там не числа, а строки. Что будет, если в одной из них встретится символ =? А что будет, если в том, что содержится в переменной $num встретятся символы .*? А если значение $num вводится юзером через web-форму? Тут даже думать не надо чтобы remote exploit поиметь. -- Victor Wagner vitus@ice.ru Chief Technical Officer Office:7-(095)-748-53-88 Communiware.Net Home: 7-(095)-135-46-61 http://www.communiware.net http://www.ice.ru/~vitus Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5 * Origin: Talk.Mail.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6488166584a9.html, оценка из 5, голосов 10
|