0

我是 Perl 编程的新手。我注意到每次我想声明一个新变量时,我都应该my在该变量之前使用关键字 if strictand warningsare on (有人告诉我这样做,原因我也不知道。)

那么如何在 perl 中声明一个变量而不使用my并且没有得到警告呢?

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

4

3 回答 3

8

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

varspragma andour可以看作是声明包变量的方法。

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

于 2013-05-22T01:54:02.570 回答
2

这是您两个问题的答案,重点补充说:

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

关于 Perl 中的变量,最重要的一点是,在我们进入任何进一步的细节之前,您应该始终在程序顶部编写 use strict 和 use 警告,然后用my.

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

usewarnings确保您的脚本会警告您有关未初始化的变量。从长远来看,始终使用严格和警告将为您节省大量时间

也可以看看:

为什么要使用严格和警告?

于 2013-05-22T01:36:44.307 回答
2

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

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

严格的变量(perldoc)

如果您访问的变量既没有显式声明(使用 my、our、state 或 use vars 中的任何一个)也没有完全限定,则会产生编译时错误。(因为这是为了避免变量自杀问题和微妙的动态范围问题,仅仅局部变量是不够的。)请参阅 my、our、state、local 和 vars。

于 2013-05-22T01:37:45.930 回答