全局变量,子程序变量Perl中的问题
发布时间:2020-12-15 23:30:43 所属栏目:大数据 来源:网络整理
导读:如何将子例程变量值传递到另一个子例程变量,我可以使用全局变量. sub foo(){my $myvar = "Hello";} sub foo1(){my $myvar1 = $myvar; # how can I get the "Hello" from $myvar.} 我试图使用包和全局变量,但失败了. Package Bar;our $bar; 谢谢. 解决方法 您
如何将子例程变量值传递到另一个子例程变量,我可以使用全局变量.
sub foo(){ my $myvar = "Hello"; } sub foo1(){ my $myvar1 = $myvar; # how can I get the "Hello" from $myvar. } 我试图使用包和全局变量,但失败了. Package Bar; our $bar; 谢谢. 解决方法
您可以在包含2个函数的作用域中声明变量:
{ my $myvar sub foo{ $myvar = "Hello"; } sub foo1{ my $myvar1 = $myvar; } } 虽然这并不是很优雅,并且很难维护,因为在foo1中设置$myvar的值并不清楚.将变量作为参数传递可能更好. sub foo { my $myvar = "Hello"; return $myvar; } sub foo1 { my( $myvar)= @_; my $myvar1 = $myvar; } # calling code my $myvar= foo(); foo1( $myvar); 请注意,所有3 $myvar都是不同的变量,在不同的范围内. 作为旁注,使用原型(sub foo())可能不是一个好主意,除非你真的知道他们在做什么,这可能不是这种情况(关于原型的讨论见The problem with prototypes) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |