zoukankan      html  css  js  c++  java
  • 如何处理Global symbol * requires explicit package name编译错误,以及use strict用法

    编写下面的简单示例来说明如何处理如下类型的错误提示:

    Global symbol "$c" requires explicit package name at *.pl line 8.

    Execution of *.pl aborted due to compilation errors.

     

    #############Code Starts###############

    #!/usr/bin/perl -w

    use strict;

    $a=0377;

    $b=0x12;

    $c=$a+$b;   #key point;

    print $c,"\n";

    #############Code Ends###############

    这时候直接运行是编译不通的,会出现开头说道的那种错误。

    关键在于有$c的那2行:变量的作用域问题和use strict的使用。

    我们使用my来声明$c,即可改正问题:

    把"

     

    $c=$a+$b;" 改为"my 

     

    $c=$a+$b;",再次运行,成功!

     

     

    use strict的用法

    1.什么场合要用 use strict

     

    当你的程序有一定的行数时,尤其是在一页放不下时,或者是你找不到发生错误的原因时。

     

     

     

     

    2.为什么要用 use strict?

     

     

     

     

     

    众多的原因之一是帮你寻找因为错误拼写造成的错误。比如错误使用了'$recieve_date' 变量,但实际上你在程序中已声明的是 '$receive_date' 变量,这个错误就很难发现。同样,use strict 迫使你把变量的范围缩到最小,使你不必担心同名变量在程序的其它部份发生不良作用。(尽管这是 my 的功能,但是如果你使用 use strict 的话,它会强迫你用 my 声明变量,来达到上述目的)。

     

     

    3.用use strict麻烦吗?

     

     

     

    不麻烦,只要在你的脚本的开始加上11个字符而已!(use strict;), 另外在整个程序中用my 声明变量。

     

     

     

     

    在你的脚本的开头 '#!/usr/local/bin/perl' 后面加上这句就行:

     

     

     

    use strict;

     

     

    4.程序出错了,该怎么办? 

    常见的错误信息一般如下:(前面已经解决过了)

    Global symbol "$c" requires explicit package name at *.pl line 8.

  • 相关阅读:
    Linux下常用压缩格式的压缩与解压方法
    FreeBSD内核编译
    How to enable a Virtualbox shared folder for Linux guest systems
    VBA删除空白行列
    freebsd 隐藏ssh版本号
    常用端口大全
    fcitx无法切换到中文(manjaro)
    关机报 at-spi-bus-launcher
    内核参数和GRUB&GRUB2
    Linux 串口调试工具汇总
  • 原文地址:https://www.cnblogs.com/tibetanmastiff/p/2294374.html
Copyright © 2011-2022 走看看