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

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.

转载于:https://www.cnblogs.com/tibetanmastiff/archive/2011/12/20/2294374.html

如何处理Global symbol * requires explicit package name编译错误,以及use strict用法相关推荐

  1. Eclipse Maven 编译错误 Dynamic Web Module 3.0 requires Java 1.6 or newer 解决方案

    Eclipse Maven 编译错误 Dynamic Web Module 3.0 requires Java 1.6 or newer 解决方案 参考文章: (1)Eclipse Maven 编译错 ...

  2. (转) Eclipse Maven 编译错误 Dynamic Web Module 3.1 requires Java 1.7 or newer 解决方案

    (转) Eclipse Maven 编译错误 Dynamic Web Module 3.1 requires Java 1.7 or newer 解决方案 参考文章: (1)(转) Eclipse M ...

  3. java程序编译错误属于异常吗_“Cannot find symbol”编译错误是什么意思?

    "Cannot find symbol"编译错误是什么意思? 1."Cannot find symbol"错误是什么意思? 首先,它是编译错误1.这意味着,无论 ...

  4. [exceptions]如何排查can not find symbol的编译错误

    如何排查can not find symbol的编译错误 Can not find symbol意味着什么 首先,它是一个编译错误,意味着你的源代码有问题或者编译的方式有问题. 你的源代码有以下部分组 ...

  5. MFC编译错误:#error: Building MFC application with /MD[d\] (CRT dll version) requires MFC shared dll vers

    编译错误:#error: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version ...

  6. goland以package形式 编译代码

    命令源码文件:独立程序的入口 包含无结果无参数的main函数 库源码文件:放置可供其他代码使用的程序实体 goland以package形式 编译代码 1.配置gopath 在File菜单里找到sett ...

  7. C++编译错误 :error: explicit qualification in declaration of xxx

    C++编译错误 :error: explicit qualification in declaration of xxx 已经存在在命名空间内,再声明函数或者类不要再加限定符,去掉函数前的XX:: 例 ...

  8. c语言编译错误 原文,C语言常见错误与警告

    C语言常见错误与警告 C语言常见错误与警告C语言常见错误: 1 invalid type argument of '->' (have 'struct qstr_xid_element') 这种 ...

  9. Vs2010编译错误集

    1.error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 在项目属性-&g ...

最新文章

  1. mysql20数据_mysql 插入20万条数据
  2. 用神经集认识手写数字
  3. centos7 ntp设置 时间同步
  4. 以太坊钱包_最大的以太坊钱包币数量还在增加
  5. QSplitter分割器窗口比例设定
  6. 数据结构-第九章 内部排序-知识点总结1
  7. unicode 转换
  8. Python 打包工具cx_freeze 问题记录及解决办法
  9. DELL服务器故障代码.xlsx
  10. 漫画:如何给女朋友解释什么是适配器模式?
  11. win10添加网络打印机_Mac可以访问Windows共享文件,添加网络打印机
  12. 微信开发者工具关联gitee账户
  13. java代码混淆工具ProGuard混淆插件
  14. 不用电脑怎么设置路由器
  15. JAVA超简单输名字骂人_骂人不带脏字的网名非常有趣
  16. 用js实现贪吃蛇网页游戏
  17. win10计算机系统优化设置,Win10不如win7?超实用win10系统优化设置,让电脑运行更流畅!...
  18. Ubuntu12.10 使用DNW传数据 进行ARM开发板烧写
  19. ar ebs 销售订单关闭_本周大新闻|《哈利波特》AR游戏玩法公开,谷歌关闭VR影视部门...
  20. LintCode 488.快乐数

热门文章

  1. [react] react中的setState和replaceState的区别是什么?
  2. 前端学习(3183):ant-design的button介绍按钮属性
  3. 前端学习(2852):简单秒杀系统学习之鼠标点击方法
  4. git clone 时候出现Please make sure you have the correct access rights and the repository exists.
  5. “约见”面试官系列之常见面试题之第五十九篇之js中push(),pop(),unshift(),shift()的用法小结 (建议收藏)
  6. 前端学习(1359) :学生档案信息管理1
  7. 前端学习(1133):正则表达式概述
  8. 前端学习(479):html简介
  9. shiro学习(19): 拦截器
  10. mybatis学习(19):模糊查询#