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