帮忙指出错误

test01.txt内容:
name
song        23        25        36
wei 25        68        25
qiao 25        16        48
sww 321        54        35
su        3        65        15

test02.txt内容:
song        songwei
qiao        qiaoxiaobo
su    suwangwen
  1. #!/usr/bin/perl
  2. use warnings;
  3. use strict;

  4. open my $fh,"<","test01.txt" or die "Error.\n";
  5. my ($filename) = @ARGV;
  6. $filename .= 'test03.txt';
  7. open WFH,'>',$filename or die "Cannot open $filename : $!\n";
  8. my %hash;
  9. open my $sh,"<","test02.txt" or die "Error.\n";
  10. while(my $line = <$sh>){
  11. chomp($line);
  12. my ($head,$name)=split(/\s+/,$line);
  13.   $hash{$head}=$name;
  14. }
  15. my $tmp = <$fh>;
  16. print WFH $tmp;
  17. while(my $lines= <$fh>){
  18. my $cmpkey = (split /\s+/,$lines)[0];
  19. $lines =~ s/([^ ]*)/$hash{$cmpkey}/ and print WFH $lines if (exists $hash{$cmpkey});
  20. }
  21. close $fh;
  22. close WFH;
  23. close $sh;
复制代码
运行后,希望得到
test03.txt内容:
songwei   23        25        36
qiaoxiaobo  25        16        48
suwangwen 3        65        15

我的程序哪儿错了?

作者: xingzhou823   发布时间: 2011-05-23

真没看出来你错哪了,我执行了也是正确的结果。唯一可能出错的就是 07 行

头像亮

作者: zhlong8   发布时间: 2011-05-23