如何处理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.
转载于:https://www.cnblogs.com/tibetanmastiff/archive/2011/12/20/2294374.html
如何处理Global symbol * requires explicit package name编译错误,以及use strict用法相关推荐
- 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 编译错 ...
- (转) 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 ...
- java程序编译错误属于异常吗_“Cannot find symbol”编译错误是什么意思?
"Cannot find symbol"编译错误是什么意思? 1."Cannot find symbol"错误是什么意思? 首先,它是编译错误1.这意味着,无论 ...
- [exceptions]如何排查can not find symbol的编译错误
如何排查can not find symbol的编译错误 Can not find symbol意味着什么 首先,它是一个编译错误,意味着你的源代码有问题或者编译的方式有问题. 你的源代码有以下部分组 ...
- 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 ...
- goland以package形式 编译代码
命令源码文件:独立程序的入口 包含无结果无参数的main函数 库源码文件:放置可供其他代码使用的程序实体 goland以package形式 编译代码 1.配置gopath 在File菜单里找到sett ...
- C++编译错误 :error: explicit qualification in declaration of xxx
C++编译错误 :error: explicit qualification in declaration of xxx 已经存在在命名空间内,再声明函数或者类不要再加限定符,去掉函数前的XX:: 例 ...
- c语言编译错误 原文,C语言常见错误与警告
C语言常见错误与警告 C语言常见错误与警告C语言常见错误: 1 invalid type argument of '->' (have 'struct qstr_xid_element') 这种 ...
- Vs2010编译错误集
1.error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 在项目属性-&g ...
最新文章
- mysql20数据_mysql 插入20万条数据
- 用神经集认识手写数字
- centos7 ntp设置 时间同步
- 以太坊钱包_最大的以太坊钱包币数量还在增加
- QSplitter分割器窗口比例设定
- 数据结构-第九章 内部排序-知识点总结1
- unicode 转换
- Python 打包工具cx_freeze 问题记录及解决办法
- DELL服务器故障代码.xlsx
- 漫画:如何给女朋友解释什么是适配器模式?
- win10添加网络打印机_Mac可以访问Windows共享文件,添加网络打印机
- 微信开发者工具关联gitee账户
- java代码混淆工具ProGuard混淆插件
- 不用电脑怎么设置路由器
- JAVA超简单输名字骂人_骂人不带脏字的网名非常有趣
- 用js实现贪吃蛇网页游戏
- win10计算机系统优化设置,Win10不如win7?超实用win10系统优化设置,让电脑运行更流畅!...
- Ubuntu12.10 使用DNW传数据 进行ARM开发板烧写
- ar ebs 销售订单关闭_本周大新闻|《哈利波特》AR游戏玩法公开,谷歌关闭VR影视部门...
- LintCode 488.快乐数
热门文章
- [react] react中的setState和replaceState的区别是什么?
- 前端学习(3183):ant-design的button介绍按钮属性
- 前端学习(2852):简单秒杀系统学习之鼠标点击方法
- git clone 时候出现Please make sure you have the correct access rights and the repository exists.
- “约见”面试官系列之常见面试题之第五十九篇之js中push(),pop(),unshift(),shift()的用法小结 (建议收藏)
- 前端学习(1359) :学生档案信息管理1
- 前端学习(1133):正则表达式概述
- 前端学习(479):html简介
- shiro学习(19): 拦截器
- mybatis学习(19):模糊查询#