|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 23 Apr 2002 10:43:07 To : "Andrey Sapozhnikov" Subject : Re: UNIVERSAL::can и taint check -------------------------------------------------------------------------------- Здравствуй, Andrey Sapozhnikov. AS> > perl5 (revision 5.0 version 6 subversion 1). В perl5 (5.0 patchlevel 5 AS> > subversion 3) работает. AS> > AS> > Код вида AS> > AS> > my $module = $1 if $ARGV[0] =~ /^(\w+)$/; AS> > my $function = $1 if $ARGV[1] =~ /^(\w+)$/; AS> > eval "require $module"; AS> > return $module->can($function); AS> > AS> > но сложнее (пока в столь простых условиях добиться не удалось) не работает AS> > (молча возвращает undef) под taint check. Вставал ли кто-нибудь на AS> подобные AS> > грабли, и если да, то где именно они лежат и как их обходят? При этом AS> Hе могу воспроизвести ошибку. Вот фигня в том, что в простых условиях и мне пока не удалось. А в проекте не работает. AS> Подобный код у меня отрабатывает нормально AS> и под 5.6.1 и под 5.7.3. Кстати, $module->can действительно может возвращать AS> undef в случае если не существует package с именем $module (неожиданно, но AS> _все_ классы наследники UNIVERSAL, даже пустые, без единого метода) Да я в курсе. Я этим пользуюсь. AS> или AS> если метод $function неопределен. Может просто eval с ошибкой завершился AS> (такого модуля нет) или имя модуля не совпадает с именем описанного в нем AS> package? Hет, возвращаемое значение require проверяется, естественно. И функция в модуле есть, не может не есть, и package тот. И вытаскивание той же функции по символьной ссылке работает. И я бы его еще попробовал понять, если бы он ругался, как положено при taint check, а не молча возвращал undef. -- Artem Chuprina Communiware.net RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/358.49, ICQ: 13038757 --- ifmail v.2.15dev5 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/14454b6886988.html, оценка из 5, голосов 10
|