【问题标题】:Change global variable value in PERL subroutine在 PERL 子程序中更改全局变量值
【发布时间】:2014-04-15 11:51:56
【问题描述】:

我是 PERL 新手,我有这个用例

#global variable
my $global = "foo";
print $global . "\n";
#subroutine call
&change($global);
print $global . "\n";

这是我的子程序

sub change { 
               change the value of global to "bar";
               return $global;
           }

这就是我想要的输出

foo
bar

我知道这是基本的,但我真的很想了解在 Perl 中执行此操作的正确方法。

【问题讨论】:

  • my 根据定义,变量不是全局变量。最多,my 变量可能具有文件范围。
  • 一般来说,依赖和修改全局变量是不好的做法。相反,传递参数和返回值。 $variable = change($variable); 对于大多数用例来说是一种更好的编码风格。

标签: perl subroutine


【解决方案1】:

只需分配给它:

sub change { 
   $global = 'bar';
}

而且函数名前不需要&change()就足够了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-25
    • 1970-01-01
    • 2013-10-04
    • 2012-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多