在perl中,如何将变量从一个函数传递到另一个函数
我正在初始化一个函数中的变量,并希望将此变量传递到另一个函数中。此变量保存一个char值。 我尝试过传入引用和取消引用,在函数外部声明变量,并使用局部变量在perl中,如何将变量从一个函数传递到另一个函数,perl,function,scope,Perl,Function,Scope,我正在初始化一个函数中的变量,并希望将此变量传递到另一个函数中。此变量保存一个char值。 我尝试过传入引用和取消引用,在函数外部声明变量,并使用局部变量 我还查看了perlmonks、perl示例、谷歌搜索和本网站查找解决方案,但没有结果。我刚刚开始使用perl编程,因此非常感谢您的帮助 听起来你需要阅读一些文档,而不仅仅是谷歌搜索。我建议http://www.perl.org/books/beginning-perl/ use strict; use warnings; sub foo {
我还查看了perlmonks、perl示例、谷歌搜索和本网站查找解决方案,但没有结果。我刚刚开始使用perl编程,因此非常感谢您的帮助 听起来你需要阅读一些文档,而不仅仅是谷歌搜索。我建议
http://www.perl.org/books/beginning-perl/
use strict;
use warnings;
sub foo {
my $char = 'A';
bar($char);
}
sub bar {
my ($bar_char) = @_;
print "bar got char $bar_char\n";
}
foo();
如果通过引用传递参数(见下文),则第一个函数可以修改该参数,然后可以将其传递给另一个函数:
#!/usr/bin/perl
sub f {
$c = shift;
$$c='m';
}
$c='a';
f(\$c);
print $c;
这将打印“m”您的第一个函数无法返回此变量有什么原因吗
my $config_variable = function1( $param1 );
function2 ( $config_variable, $param2 );
您还可以传回多个变量:
my ( $config_variable, $value ) = function1( $param1 );
my $value2 = function2( $param1, $config_variable );
这是最好的办法。但是,您可以使用全局定义的变量,并且可以在函数之间使用这些变量:
#! /usr/bin/env perl
#
use strict;
use warnings;
my $value;
func1();
func2();
sub func1 {
$value = "foo";
}
sub func2 {
print "Value = $value\n";
}
注意,我在两个函数之外声明了$value
,因此它在整个文件中是全局的,甚至在子例程中也是如此。现在,func1
可以设置它,并且func1
可以打印它
这方面的专业术语是:一个可怕的、可怕的、邪恶的想法,你应该永远不要想去做它
这是因为您认为某个特定变量突然被设置为一个值,并且在没有任何原因的情况下神秘地更改值。对一个变量这样做已经够糟糕的了,但如果你把它当作拐杖,你最终会得到几十个无法在程序中跟踪的变量
如果你发现自己经常这样做,你可能需要重新考虑你的代码逻辑。一些代码和
不起作用的部分
描述会很有帮助。他说的是在一个函数内初始化一个var,然后传递给另一个函数$a=0;初始费用(a美元);使用($a)。这就是我对qs的理解。@OlegGryb如果没有任何代码显示尝试了什么,很难说。你是对的,没有足够的信息,但这是我的理解。