- 论坛徽章:
- 0
|
本帖最后由 Okelani 于 2017-03-22 12:54 编辑
把文件A读作哈希
判断B的第一列ID是否出现在哈希A里
- #!/usr/bin/perl
- my ( $fileA, $fileB ) = qw/A B/;
- open my $A, $fileA or die "$fileA: ", $!;
- open my $B, $fileB or die "$fileB: ", $!;
- my %A_has = map { $_, chomp } <$A>;
- while (<$B>) {
- my ($id) = split /\./;
- print if $A_has{$id};
- }
复制代码
也能解决问题, 效率有差别。
- #!/usr/bin/perl
- my ( $fileA, $fileB ) = qw/A B/;
- open my $A, $fileA or die "$fileA: ", $!;
- open my $B, $fileB or die "$fileB: ", $!;
- my @A = grep { chomp } <$A>;
- my @B = <$B>;
- for my $B (@B) {
- my ($id) = split /\./, $B;
- for my $ID (@A) {
- if ( $id eq $ID ) {
- print $B;
- last;
- }
- }
- }
复制代码 |
|