我可以通过子程序传递两个变量,如果可以如何获取传递的变量?

时间:2014-05-29 08:19:10

标签: perl

以下是代码示例:

$test1 = "abc";
$test2 = "def";

function($test1,$test2);

sub function($){
    --What should I do here to get the `$test1` and `$test2`--
    --Is it possible?--
}

预期结果:

能够通过$test1获取子函数内的$test2function($test1,$test2)

感谢您的评论,教学和答案。

1 个答案:

答案 0 :(得分:4)

在子程序中,参数将在@_中可用。您可以使用shift检索它们:

my $test1 = shift;
my $test2 = shift;

或将@_分配给列表:

my ($test1, $test2) = @_;

或直接访问它们(任何更改也会反映在外面):

print $_[0];
print $_[1];

e.g。

function($test1,$test2);

sub function {
    my ($test1, $test2) = @_;
    # Do something with the arguments.
}

注意我已经function删除了{{1}}中的原型,并且它只允许一个参数。