我有兩個文件,我已讀入2個單獨的散列。第一個文件有兩列,看起來像:如何比較兩個散列
123456789 11111
234567891 22222
345678912 33333
第二個文件有一列,它看起來像:
123456789
010124561
100324531
我想兩個散列比較和無論何時,只要之間的匹配這兩個文件的第一列,它應該打印到第一列結果的新文件。這是我迄今爲止...
#!/usr/bin/perl
use Sys::Hostname;
use lib "$ENV{HOME}/common/lib/perl";
use strict;
use warnings;
my %oid;
my %oid2;
my %atom;
my %newline;
my $oid;
my $atom;
my @line =();
my @line2 =();
my @oid =();
my @oid2 =();
my $input = 'file.txt';
my $input2 = 'file2.txt';
my $output = 'outputfile.txt';
open (IN, "<$input");
open (IN2, "<$input2");
open (OUT, "+>$output");
for my $line (<IN>) {
chomp $line;
my @line = split /\t/, $line;
push(@oid, $line[0]);
$oid{ $line[0] } = $line[0];
$atom{ $line[0] } = $line[1];
}
for my $line2 (<IN2>) {
chomp $line2;
my @line2 = split /\t/, $line2;
push(@oid2, $line2[0]);
$oid2{ $line2[0] } = $line2[0];
}
哇。很多perl程序的代碼...你不能像'foreach $ key @keys(%hash1){if(exists $ hash2($ key)){{做任何你想做的事}}'做類似的事情嗎? – user2141046