加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 21:13:09 所属栏目:大数据 来源:网络整理
导读:在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中没有“状态”声明.

我遇到了一个在这些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";
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读