在5.10之前的Perl中没有"状态"声明.
我在这些Perls中遇到了一个创建静态变量的例子:my $x if 0.该if 0条件使变量的行为像一个静态变量:
use strict; use warnings;
add() for 1..7;
sub add {
my @arr = () if 0;
push @arr, '+';
print @arr, "\n";
}
Run Code Online (Sandbox Code Playgroud)
打印:
+
++
+++
++++
+++++
++++++
+++++++
Run Code Online (Sandbox Code Playgroud)
在5.10之前的所有版本的Perl中,这种行为是否一致?
只有在参数为false时才能定义变量吗?
我有类似的东西:
my $object = Class::create($args);
for my $i (@input) {
if ($test) {
# print some info here
next;
}
#use of $object here
}
Run Code Online (Sandbox Code Playgroud)
如果我这样做:
my $object = Class::create($args) unless ($test);
Run Code Online (Sandbox Code Playgroud)
这是一个正确的初始化方法吗?
perl ×2