相关疑难解决方法(0)

在$ 5.10之前,'my $ x if 0'技巧是否可用于Perls的静态变量创建?

在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中,这种行为是否一致?

perl

13
推荐指数
3
解决办法
571
查看次数

条件初始化/定义变量

只有在参数为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

1
推荐指数
1
解决办法
66
查看次数

标签 统计

perl ×2