Perl处理数组的数组示例代码

代码取自Perl5编程详解 isbn 7-111-07283-9/TP
welcome to my page: http;//skypavilion.yeah.net

---aoa.txt----
1111|George Hammond|12 Elk Pkwy |GOOD
1112|Susie Wayland|15 Sachs Road |CANCELED
1113|Michael Thurmond|1115 Cherry St |GOOD

---makeaoa.pl----
use FileHandle;
use Data::Dumper;
sub makeArrayOfArrays {
  my ($file,$config)=@_;
  my $return=[];
  my (@lines);
  
  my $fd = new FileHandle("$file") || die "Couldn't open $file\n";
  chomp(@lines=<$fd>);
  print Dumper(@lines);
  foreach $line (@lines) {
    # push(@$return, [split(m"\|",$line)]);
    push (@$return,getArrayRef($line,$config));
  }
  print "@{$return}\n";
  return($return);
}

sub getArrayRef {
  my ($line,$config)=@_;
  my @return;
  my $ignoreElements=$config->{IGNORE} || [];
  # print "@$ignoreElements\n";
  my @elements=split(m"\|",$line);
  my $yy=0;
  foreach (@elements) {
    push(@return,$_) if (!grep($_==$yy,@$ignoreElements));
    $yy++;
  }
  return([@return]);
}

print Dumper(makeArrayOfArrays('aoa.txt',{IGNORE=>[1]}));