5.10之前是否为Perl静态变量创建使用’我的$x if 0’技巧?

前端之家收集整理的这篇文章主要介绍了5.10之前是否为Perl静态变量创建使用’我的$x if 0’技巧?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在5.10之前的Perl中没有“状态”声明.

我遇到了一个在这些Perl中创建静态变量的例子:我的$x如果为0. if 0条件使变量像静态变量一样:

use strict; use warnings;
add() for 1..7;

sub add {
    my @arr = () if 0;

    push @arr,'+';
    print @arr,"\n";
}

打印:

+
++
+++
++++
+++++
++++++
+++++++

在5.10之前的所有版本的Perl中,这种行为是否一致?

解决方法

我一直使用范围大括号来创建静态变量.
add() for 1..2;       # Append to existing.
add('foo','bar');    # Re-initialize if args are passed.
add() for 1..2;       # Append to existing.
{
    my @arr;
    sub add {
        @arr = @_ if @_;
        push @arr,'+';
        print @arr,"\n";
    }
}
原文链接:https://www.f2er.com/Perl/172691.html

猜你在找的Perl相关文章