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

代码如下:

 
  
  1. #!/usr/bin/perl -w 

  2. use warnings; 

  3. use strict; 

  4. open FILE1,"employee" or die "$!\n"; 

  5. open FILE2,"bonus" or die "$!\n"; 

  6. my (%name,%mon); 

  7. while (<FILE1>){ 

  8.         my($num,$name1,$name2)=split; 

  9.         $name{$num}="$name1"."$name2"; 

  10. while (<FILE2>){ 

  11.         my($num,$mon)=split; 

  12.         $mon{$num}=$mon; 

  13. foreach my $num(sort keys %name){ 

  14.         my $name = $name{$num}; 

  15.         my $mon = $mon{$num} if exists $mon{$num}; 

  16. print "$num $name $mon\n";