子程序与引用

子程序与引用

使用引用创建的多维数组,在传递给子程序,或者从子程序传递出来,是重新赋值过还是直接传递引用。

貌似直接传递引用的。

[Copy to clipboard] [ - ]
CODE:
#!/usr/bin/perl

use warnings;
use strict;
use Text::CSV_XS;

sub csv{
  open (CSV,"<$_[0]");
  my @columns;
  my $col;
  my $csv = Text::CSV_XS->new({
                               'binary' => 1,
                               'quote_char'  => '"',
                               'sep_char'    => ','
                              });

  foreach my $line (<CSV>) {
    chomp $line;
    if ($csv->parse($line)) {
      $col=[];
      @{$col} = $csv->fields();
      push @columns,$col;
    } else {
      print "[error line : ", $csv->error_input, "]\n";
    }
  }

  close (CSV);
  return @columns;
}

sub check{
  foreach (@_){
    foreach (@{$_}){
      s/ //g;
      s/,//g;
    }
  }
}

my @tmp=csv($ARGV[0]);
&check(@tmp);
foreach (@tmp){
  foreach (@{$_}){
    print $_."\n";
}
}

是直接传递引用的,哦,你想干嘛?
刚接触引用,有些地方还是琢磨的不是很透。手头的书没讲到引用,看来得再找本书了。
perl 24 学时有一张专门讲引用http://bbs.chinaunix.net/viewthread.php?tid=1161729
引用。当然是去看。黑豹书那本。有中文。
讲得不错。例子也行。
但书买不到。太可惜了。还蛮便宜的。价格。