如何在不使用“my”的情况下声明perl变量

时间:2013-05-22 01:29:58

标签: perl variables

我是Perl编程的新手。我注意到,每次我想声明一个新变量时,如果mystrict打开,我应该在该变量之前使用warnings关键字(我被告知这样做,我也不知道原因。)

那么如何在不使用my的情况下在perl中声明变量并且不会收到警告?

我的问题是:是否可以在不使用my的情况下声明变量,而无需省略use strict;use warnings;并且根本没有收到警告?

3 个答案:

答案 0 :(得分:8)

有两种声明词法变量的方法:myour,但它们不可互换,因为our创建的词汇别名为包变量。

可以将vars编译指示和our视为声明包变量的方法。

use strict;不会为声明的变量而死,而use warnings;不会警告声明的变量(除非你算“只使用一次”),所以我不知道你为什么提到它们。

答案 1 :(得分:2)

以下是对你的两个问题的回答,重点补充:

http://www.caveofprogramming.com/perl/perl-variables-%E2%80%94-declaring-and-using-variables-in-perl/

  

在我们得到之前,最重要的是要说Perl中的变量   进一步细节,是你应该总是写严格使用   并在程序顶部使用警告,然后声明所有   变量my

     

使用strict确保必须使用my声明所有变量(或   local)在使用它们之前,有助于消除拼写错误。

     

使用warnings可确保您的脚本会向您发出警告   未初始化的变量。 始终使用严格和警告将保存   从长远来看,你需要花费大量时间

另见:

Why use strict and warnings?

答案 2 :(得分:2)

使用my是一种很好的做法,因为它定义了本地范围内的变量。否则你最终会得到一堆全局变量,这些变量通常是错误的来源。

但如果你真的不想使用my,那么只需省略use strict行和use warnings行。

  

strict vars (perldoc)

     

如果您访问既未明确声明(使用my,our,state或use vars)也不是完全限定的变量,则会生成编译时错误。 (因为这是为了避免变量自杀问题和微妙的动态范围问题,仅仅局部变量不够好。)查看我的,我们的,州,本地和变种。