Learning Perl,4th Edition(2-3 内建警告)

2.3 perl 的内建警告机制
    perl 可以被设置成通知用户警告的方式,当有可疑的东西在你的程序中运行时。
    使用 -w 在命令行,打开警告开关。
    $perl -w my_program
    或者,如果总是需要警告,你可以请求他们在 #!行。
    #!/usr/bin/perl -w
    这个也可以在非unix系统上运行, 传统的习惯写成这样,因为路径对perl
    不会产生影响:
    #!perl -w
    如果是5.6或者以后的版本,你可以使用编译指令打开warnings.(小心,
    因为它不会起作用 对于早期的perl版本)
   
    #!/usr/bin/perl
    usr warnings;
   
    现在,perl 会给一个警告,如果你把'12fred34'用作一个数字:
    Argument "12fred34" isn't numeric
    当然, 警告通常是对程序员有意义的,不是为了最终用户。如果一个程序员
    不看这个警告,它很可能没有任何用处。 警告不会改变你的程序的行为,除非
    他偶尔发生缺陷的时候。如果你得到一个警告消息 却不能理解,你可以取得一个更长的
    解释通过使用 diagnostics编译指示。perldiag 主页 有短的警告信息也有长的详细解释。
    #!/usr/bin/perl
    use diagnostics;
    当你添上了 use diagnostics编译指示,你的程序运行时看上去会暂停一会儿。
    那是因为你的程序需要做很多工作(正在狼吞虎咽大块的内存),当你正想读详细文档
    一旦perl 提醒你有错误。
    如果需要,这可以作为一个加速程序的措施,一旦你不再需要读这些警告文档,你可以
    删除 use diagnostics编译指示。(当然更好的做法是你可以修改自己的程序来避免产生
    警告,这样仅仅是减少读取输出).
    一个更深的优化是使用一个perl的命令行选项 -M,只有当需要的时候才载入编译指示
    ,避免每次都要修改源程序来使diagnostics有效或者无效。
     $ perl -Mdiagnostics ./my_program
    Argument "12fred34" isn't numeric in addition (+) at ./my_program line 17 (#1)
        (W numeric) The indicated string was fed as an argument to
        an operator that expected a numeric value instead.  If you're
        fortunate the message will identify which operator was so unfortunate.

    当我们跑过代码时,Perl 将能够警告我们一个错误已经发生,我们将会指出它,但是不能
   依赖这些文本和未来的perl的RELEASE版本的警告是一样的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值