我是Perl编程的新手。我注意到,每次我想声明一个新变量时,如果my
和strict
打开,我应该在该变量之前使用warnings
关键字(我被告知这样做,我也不知道原因。)
那么如何在不使用my
的情况下在perl中声明变量并且不会收到警告?
我的问题是:是否可以在不使用my
的情况下声明变量,而无需省略use strict;
和use warnings;
并且根本没有收到警告?
答案 0 :(得分:8)
有两种声明词法变量的方法:my
和our
,但它们不可互换,因为our
创建的词汇别名为包变量。
可以将vars
编译指示和our
视为声明包变量的方法。
use strict;
不会为声明的变量而死,而use warnings;
不会警告声明的变量(除非你算“只使用一次”),所以我不知道你为什么提到它们。
答案 1 :(得分:2)
以下是对你的两个问题的回答,重点补充:
在我们得到之前,最重要的是要说Perl中的变量 进一步细节,是你应该总是写严格使用 并在程序顶部使用警告,然后声明所有 变量
my
。使用
strict
确保必须使用my
声明所有变量(或local
)在使用它们之前,有助于消除拼写错误。使用
warnings
可确保您的脚本会向您发出警告 未初始化的变量。 始终使用严格和警告将保存 从长远来看,你需要花费大量时间。
另见:
答案 2 :(得分:2)
使用my
是一种很好的做法,因为它定义了本地范围内的变量。否则你最终会得到一堆全局变量,这些变量通常是错误的来源。
但如果你真的不想使用my
,那么只需省略use strict
行和use warnings
行。
如果您访问既未明确声明(使用my,our,state或use vars)也不是完全限定的变量,则会生成编译时错误。 (因为这是为了避免变量自杀问题和微妙的动态范围问题,仅仅局部变量不够好。)查看我的,我们的,州,本地和变种。