- 论坛徽章:
- 0
|
其实我不是牛人,这里牛人很多,我觉得代码可以写的再短。
请见以下脚本。- #!/usr/bin/perl
- use strict;
- use warnings;
- use IO::File;
- my $hash1_href = read_file($ARGV[0]);
- my $hash2_href = read_file($ARGV[1]);
- for my $k (sort { $hash2_href->{$a} <=> $hash2_href->{$b} } keys %{$hash2_href}) {
- if (exists $hash1_href->{$k}) {
- print "$k $hash1_href->{$k} $hash2_href->{$k}\n";
- }
- }
- sub read_file {
- my $file = shift;
- my %hash;
- my $fh = IO::File->new ($file, 'r');
- while (<$fh>) {
- s/\r//; s/^\s*$//;
- chomp;
- my @arr = split /\s+/, $_, 7;
- my $first = join " ", @arr[0..5];
- $hash{$first} = $arr[6];
- }
- return \%hash;
- }
复制代码 |
|