perl语言中传递数组参数

在perl语言中,数组参数的传递只能在同一个文件中实现。当你用require包含一个子文件,并调用子文件中的函数时,无法正确的传入数组参数,请参看如下代码test.pl:

#!usr/bin/perl

#require 'myutils.pl';



my @test = ("hello","world","dlt_test");

my $sss = ("sss test");

sub test_argument(/@$)

{

     print "@_/n";

     my ($list,$calcar)=@_;

     print "$list/n";

     print "ttt=$calcar/n";

    foreach my $temp (@$list)

   {

       print "list=$temp /n";

   }

}

test_argument(@test,$ttt);
该代码能获取与其的结果:@test的值赋给list,$sss的值赋给$scalcar
但是如故把test_argument的实现放到myutisl.pl中,则无法获取与其的值。通过调试可知道,跨越文件的函数
调用把所有的参数组装成了一个数组来传递,因此子函数无法分割出实参的原始格式。
我们可通过下面的方法现对数组+字符串的参数的分割:
sub mytest_argument(/@$)
{
 my $count = @_;
 my @list = @_[0..$count-2];
 my $calcar = 

在perl语言中,数组参数的传递只能在同一个文件中实现。当你用require包含一个子文件,并调用子文件中的函数时,无法正确的传入数组参数,请参看如下代码test.pl:

#!usr/bin/perl

#require 'myutils.pl';



my @test = ("hello","world","dlt_test");

my $sss = ("sss test");

sub test_argument(/@$)

{

     print "@_/n";

     my ($list,$calcar)=@_;

     print "$list/n";

     print "ttt=$calcar/n";

    foreach my $temp (@$list)

   {

       print "list=$temp /n";

   }

}

test_argument(@test,$ttt);
该代码能获取与其的结果:@test的值赋给list,$sss的值赋给$scalcar
但是如故把test_argument的实现放到myutisl.pl中,则无法获取与其的值。通过调试可知道,跨越文件的函数
调用把所有的参数组装成了一个数组来传递,因此子函数无法分割出实参的原始格式。
我们可通过下面的方法现对数组+字符串的参数的分割:
___FCKpd___4

[$count-1];  foreach my $temp (@list)  {   print "list=$temp /n";  }  print "ttt=$calcar/n"; }
___FCKpd___5
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值