2010年5月28日星期五

Perl : 函数中使用$_[0]直接修改传入的参数

主要看这张贴:Perl Subroutine Primer

在函数中,遍历每个传入的参数,可以直接修改参数本身的值。例如:
#!/usr/bin/perl
use Data::Dumper;

($t1,$t2)=('abc','ebg');
@t3=('rbx','wer');
%t4=('rb'=>'wer','rx'=>'34b');

mytest($t1,$t2,@t3,%t4);
print Dumper($t1,$t2,\@t3,\%t4);

sub mytest {
    s/b/x/ for @_;
}

打印出来的结果可以看到,标量、数组、hash值都被改了:
$VAR1 = 'axc';
$VAR2 = 'exg';
$VAR3 = [
          'rxx',
          'wer'
        ];
$VAR4 = {
          'rx' => '34x',
          'rb' => 'wer'
        };

没有评论:

发表评论