employee文件中记录了工号和姓名
100 Jason Smith
200 John Doe
300 Sanjay Gupta
400 Ashok Sharma
bonus文件中记录工号和工资
100 $5,000
200 $500
300 $3,000
400 $1,250
要求把两个文件合并并输出如下
处理结果:
400 ashok sharma $1,250
100 jason smith $5,000
200 john doe $500
300 sanjay gupta $3,000
代码如下:
#!/usr/bin/perl -w
use warnings;
use strict;
open FILE1,"employee" or die "$!\n";
open FILE2,"bonus" or die "$!\n";
my (%name,%mon);
while (<FILE1>){
my($num,$name1,$name2)=split;
$name{$num}="$name1"."$name2";
}
while (<FILE2>){
my($num,$mon)=split;
$mon{$num}=$mon;
}
foreach my $num(sort keys %name){
my $name = $name{$num};
my $mon = $mon{$num} if exists $mon{$num};
print "$num $name $mon\n";
}
转载于:https://blog.51cto.com/donghui/626299