在perl中获取参数函数数组

莱坎

我想获取在函数中发送的数组,但它似乎是空的。send_file();在参数中使用数组进行调用

send_file($addr, @curfile);

这就是我找回参数的方式

sub send_file($$)
{
    my $addr = $_[0];
    my @elem = @_;
    ...
}

为什么my @elem是空的?我如何才能在不丢失所有内容的情况下取回阵列?

1992年

您应该改为通过引用传递数组:

#!/usr/bin/perl

use strict;
use warnings;

my $test_scalar = 10;
my @test_array  = qw(this is a test);

sub test($\@)
{
    my ($scalar, $array) = @_;

    print "SCALAR = $scalar\n";
    print "ARRAY  = @$array\n";
}

test($test_scalar, @test_array);

system 'pause';

输出:

SCALAR = 10
ARRAY  = this is a test
Press any key to continue . . .

编辑:

如果您想做同样的事情而不通过引用传递,请将$$更改为$ @并使用shift,这样第一个参数就不会包含在数组中。不过,通过引用传递数组是更好的编码实践。这只是向您展示如何在不通过引用的情况下完成它:

#!/usr/bin/perl

use strict;
use warnings;

my $test_scalar = 10;
my @test_array  = qw(this is a test);

sub test($@)
{
    my ($scalar, @array) = @_;

    print "SCALAR = $scalar\n";
    print "ARRAY  = @array\n";
}

test($test_scalar, @test_array);

system 'pause';

这将为您提供相同的输出。

如果您确实不需要$ @,也可以完全取消$ @。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从函数返回数组作为参数时,为什么从函数数组中获取随机值?

来自分类Dev

Elixir:函数参数数组

来自分类Dev

无法在JavaScript中的变长参数数组上运行函数

来自分类Dev

C中函数数组的参数传递/返回,

来自分类Dev

在c中的参数数组

来自分类Dev

Verilog中的参数数组

来自分类Dev

Swift中的函数数组

来自分类Dev

C#函数参数数组与列表

来自分类Dev

动态生成集成参数的函数数组?

来自分类Dev

估计函数参数数组的维度

来自分类Dev

Lisp函数获取错误的参数数量

来自分类Dev

PHP:获取函数接受的参数数量

来自分类Dev

从Void *参数获取整数数组

来自分类Dev

从xml文件获取参数数组

来自分类Dev

在参数数组中传递整数数组

来自分类Dev

如何将函数数组应用于Javascript中相应参数的数组?

来自分类Dev

如何在perl中接受输出参数数组和标量?

来自分类Dev

获取FUNCNAME中的参数数量

来自分类Dev

如何将参数数组传递给JavaScript中的另一个函数?

来自分类Dev

查找作为c中函数的参数接收的整数数组的大小

来自分类Dev

在auth_email_signup_user函数的参数数组中检测到意外的键(性别,dob)

来自分类Dev

是否可以在Swift中创建一个采用“输入”参数的函数数组?

来自分类Dev

似乎无法将函数传递给node.js(TypeScript)中的setTimeout参数数组

来自分类Dev

如何基于输入参数数组在函数内部执行函数?

来自分类Dev

在javascript中对函数数组进行排序

来自分类Dev

Perl从数组中获取

来自分类常见问题

为什么箭头函数没有参数数组?

来自分类Dev

获取类构造函数接受的参数数量

来自分类Dev

允许参数数组

Related 相关文章

热门标签

归档