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

本文详细介绍了如何通过使用my关键字和严格模式来避免Perl脚本中的全局符号错误和编译错误,同时解释了usestrict的作用及其重要性。通过实例演示,帮助开发者理解并解决常见编程问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值