找回密码
 注册
查看: 2345|回复: 0

perl语言使用strict Pragma

[复制链接]
发表于 2011-11-13 22:31:18 | 显示全部楼层 |阅读模式
Perl 是一种宽容的语言◆。你可能希望Perl 严格一些;那可以使用strict pragma。
◆你可能还没注意到。
pragma 可以提示编译器,告诉它一些关于这块代码的信息。如,使用strict pragma 告诉Perl 的编译器,应当严格的检查这段代码。
为什么要使用这种方法呢?假设你写一个程序,输入了如下这一行:
$bamm_bamm = 3; #Perl 自动创建这个变量
现在,你接着输入一些新的代码。当上面一条语句滚动到屏幕以外时,你输入了下面这条语句:
$bammbamm + =1; #Oops!
由于Perl 把它当作一个新的变量(下划线是有含义的),它将创建这个变量,并增1。如果你足够幸运或者聪明,打开了警
告(warnings),Perl 将告诉你这个,或者这两个变量仅使用了一次。如果你没那么幸运,每个变量使用了不止一次,那Perl
将不会警告你。
告诉Perl 进行更严格的语法检测,需要在程序顶端use strict(或者在任意块或者文件中,如果你需要在此部分使用它):
use strict; #迫使采用更严格的检测
现在,除了其它限制外◆,Perl 将要求你在申明每一个新的变量时,使用my◆:
◆要想知道更多的限制,可以查看关于strict 的文档。文档是按照pragma 的名字来归档的。因此,命令perldoc strict(或者你系统中查看文
档的命令)将为你找到相应的文档。
◆当然,还有一些别的声明变量的方法。
my $bamm_bamm=3 ; #新的局部变量
如果,你把它拼写成别的形式,Perl 将警告你,你没有定义如$bammbamm 的变量,因此这类错误在编译时既能发现。
$bammbamm+=1; #没有这样的变量;编译时错误
当然,这只是针对Perl 的新的变量;对于Perl 内嵌的变量如,$_,@_则不需要申明◆。如果在以前的程序中使用use strict,
那很可能得到许多警告信息,因此你应当养成使用strict 的习惯。
◆在某些情况下,不应当申明$a, $b,因为它们被sort 使用。因此,遇到这种问题时,使用其它的变量名。事实上,use strict 不会阻止这两
个变量,在Perl 中不算bugs。
许多人推荐如果程序长度大于一个屏幕,则需要使用use strict。我们赞成这种观点。
从现在开始,我们例子中的大多数程序(不是全部)将使用use strict,虽然有时我们没有将它明显的写出。因此,当定义
新变量时,我们将使用my。虽然,我们不经常这样做,但是我们推荐你在你的程序中尽可能的使用use strict。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-12-4 01:01 , Processed in 0.028912 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表