use warnings;只作用于你当前的文件 更准确的说是当前的block -w 作用于所有你require ,use的代码,不仅是你自己写的东西的警告,你用的别的代码里有问题 他也会报警告。 所以如果你只用 use warnings IO::Prompt里的警告就不会出现了
在2009-08-31,"Qiang (James)" <[email protected]> 写道: > >Michael Zeng wrote: >> 有什么不一样啊,能具体说下么 > >-w 和 use warnings 经常在一起使用。或者单使用 use warnings 即可。 > >至于两者的区别你可以阅读 perllexwarn (perldoc perllexwarn) > >Qiang > >> >> >> >> 2009/8/31 xiaohuidexinge <[email protected] >> <mailto:[email protected]>> >> >> 把第一行的 -w 去掉就好了 >> -w的作用范围和use warnings 不一样 >> >> >> >> >> -- >> <http://minisite.163.com/2009/0715/vichy/> >> >> 在2009-08-31,"Haiyan Lin" <[email protected] >> <mailto:[email protected]>> 写道: >> >> 再笨笨的问一下。在楼顶的例子中,除了不用“#! /usr/bin/perl -w", >> 或将其移到第二行让其失效外。还有没有其他的办法。我觉得上面提到的 >> 方法不好! >> >> ----- Original Message ----- >> *From:* joe jiang <mailto:[email protected]> >> *To:* [email protected] >> <mailto:[email protected]> >> *Sent:* Sunday, August 30, 2009 9:07 PM >> *Subject:* [PerlChina] Re: 请教IO::Prompt 的问题 >> >> 应该避免警告,但是这个警告应该是 perl 自身的 bug 导致的,因 >> 为第 91 行并非正则运算,和警告信息是不符合的。 >> >> 91 if (ref eq 'HASH') { >> >> >> 2009/8/30 Michael Zeng <[email protected] >> <mailto:[email protected]>> >> >> #!/usr/local/bin/perl -w 放在第一行 是一个习惯 >> 叫shubang 行,让shell 去了解你的运行 程序的 >> >> 如果在命令行打perl , 不要这行也可以 >> >> shell>perl XXXX.pl >> >> -w 是开启warning 的意思 >> >> 和 use warnings ; 一样的 >> >> >> >> >> 2009/8/30 Haiyan Lin <[email protected] >> <mailto:[email protected]>> >> >> 谢谢joe的回答。这对于脚本运行。会有什么影响吗? >> >> ----- Original Message ----- >> *From:* joe jiang <mailto:[email protected]> >> *To:* [email protected] >> <mailto:[email protected]> >> *Sent:* Sunday, August 30, 2009 7:55 PM >> *Subject:* [PerlChina] Re: 请教IO::Prompt 的问题 >> >> 因为在第二行,#! 所有的魔力就失效了,变成了一个 >> 无用的注释。 >> >> 2009/8/30 linhy <[email protected] >> <mailto:[email protected]>> >> >> 再用IO::Prompt的时候,碰到一个很费解的问题? >> 脚本的第一行是"#! /usr/bin/perl -w“的时候。 >> 尽管脚本可以运行, 会给 >> 出警告信息: >> >> Use of uninitialized value $_ in pattern >> match (m//) at /usr/local/ >> lib/perl5/site_perl/5.10.0/IO/Prompt.pm line 91. >> >> 若将第一行空着,把"#! /usr/bin/perl -w“放到 >> 第二行的时候,警告信息就消失了。不知道为什 >> 么?兄弟姐妹们碰到过吗?请指点一下。 >> 详细情况如下: >> >> >> [li...@genome2 Practice]$ cat -n iotry2.pl >> 1 #! /usr/bin/perl -w >> 2 # >> 3 use strict; >> 4 use warnings; >> 5 use IO::Prompt; >> 6 >> 7 prompt ("print paswd: " , -tty, -echo >> => '*') or die "Error: >> $!"; >> 8 >> 9 print "You passwd is: '$_'\n"; >> 10 >> 11 exit ; >> >> [li...@genome2 Practice]$ perl iotry2.pl >> Use of uninitialized value $_ in pattern >> match (m//) at /usr/local/lib/ >> perl5/site_perl/5.10.0/IO/Prompt.pm line 91. >> print paswd: ** >> You passwd is: 'll' >> >> 若将第一行空着,把"#! /usr/bin/perl -w“放到 >> 第二行的时候,警告信息就消失了。 >> [li...@genome2 Practice]$ cat -n iotry3.pl >> 1 >> 2 #! /usr/bin/perl -w >> 3 # >> 4 use strict; >> 5 use warnings; >> 6 use IO::Prompt; >> 7 >> 8 prompt ("print paswd: " , -tty, -echo >> => '*') or die "Error: >> $!"; >> 9 >> 10 print "You passwd is: '$_'\n"; >> 11 >> 12 exit ; >> [li...@genome2 Practice]$ perl iotry3.pl >> print paswd: *** >> You passwd is: 'lll' >> >> >> >> >> >> >> -- >> Yours Sincerely >> Zeng Hong >> >> >> >> >> >> 没有广告的终身免费邮箱,www.yeah.net >> <http://www.yeah.net/?from=footer> >> >> >> >> >> -- >> Yours Sincerely >> Zeng Hong >> >> > > > >> --~--~---------~--~----~------------~-------~--~----~ 您收到此信息是由于您订阅了 Google 论坛“PerlChina Mongers 讨论组”论坛。 要在此论坛发帖,请发电子邮件到 [email protected] 要退订此论坛,请发邮件至 [email protected] 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛 -~----------~----~----~----~------~----~------~--~---
