Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Непонятки с опцией perl -s


Автор: amg 27.10.2008, 16:16
Есть скрипт test следующего содержания:
Код
#!/usr/bin/perl -ws
print "$xyz\n";
Результат:
Код
>./test -xyz=abc
abc
>perl ./test -xyz=abc
1
>perl -s ./test -xyz=abc
abc
Т.е. опция -s работает, но во 2-м случае как-то странно. В чем дело? Или это только у меня так?

Автор: ginnie 27.10.2008, 16:50
amg, у меня работает так-же, причину выяснить не удалось  smile 

Автор: nitr 28.10.2008, 00:55
Код
#!/usr/bin/perl -s
print "$xyz\n";

а -w заменить use warnings?
В доке не нашел этого, но возможно это в новых версиях пошло, т.к. use warnings предпочтительнее стал, хотя не могу проверить.
В доках промелькали баги опции -w
+ некоторые нюансы описываются http://perldoc.perl.org/perllexwarn.html
+ по опции -s добавлено 
Цитата
Also, when using this option on a script with warnings enabled you may get a lot of spurious "used only once" warnings.



ginnie, amg, но у меня сработало иначе в *nix smile
Цитата
[nitr@SamsungQ210 work]$ cat test233851.pl
#!/usr/bin/perl -ws
print "$xyz\n";
[nitr@SamsungQ210 work]$ ./test233851.pl -xyz=abc
abc
[nitr@SamsungQ210 work]$ perl ./test233851.pl -xyz=abc
abc
[nitr@SamsungQ210 work]$ perl -s ./test233851.pl -xyz=abc
abc
[nitr@SamsungQ210 work]$ perl -v

This is perl, v5.10.0 built for i686-linux-thread-multi

Copyright 1987-2007, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

[nitr@SamsungQ210 work]$ 

Может это и был некий баг? Который исправлен, или баг от ActiveState (если винда)...

Автор: amg 28.10.2008, 06:56
Цитата(nitr @  28.10.2008,  00:55 Найти цитируемый пост)
а -w заменить use warnings?
Не помогает :(
Цитата(nitr @  28.10.2008,  00:55 Найти цитируемый пост)
Может это и был некий баг? Который исправлен, или баг от ActiveState (если винда)...
У меня linux и perl 5.8.8. Действительно, похоже на баг...

Автор: nitr 28.10.2008, 20:08
А такой бубен как -W, как отреагирует? Или замена местами #!/usr/bin/perl -sw. Но это я так smile
У кого < perl 5.10 проверьте баг "от amg".

Автор: ginnie 28.10.2008, 20:19
nitr, ни -W, ни -sw никак не влияют (warnings, похоже, вообще никак не влияет).

Автор: nitr 28.10.2008, 20:45
ginnie, так это и есть "бубен" ;)
Не нашли "источник" проблемы? Похоже всё же "ядро"...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)