【发布时间】:2010-11-02 05:12:46
【问题描述】:
所以我有两个信息相似的文件。
示例
test.txt
1=1
2=2
3=3
test_2.txt
1=1
2=4
3=5
4=4
5=5
6=6
现在我想打印每个哈希键和值。
my %hash1;
my $scalar_value1;
my $scalar_value2;
my $file = "/test/test.txt";
open (TEST, "<$file") or die "$!";
while (TEST) {
($scalar_value1, $scalar_value2) = split( '=' );
$hash1{$scalar_value1}{'value1'} = $scalar_value1;
$hash1{$scalar_value1}{'value2'} = $scalar_value2;
}
close TEST;
foreach my $scalar_value1 (sort keys %hash1) {
print "$hash1{$scalar_value1}{'value1'} | $hash1{$scalar_value1}{'value2'}";
}
my %hash2;
my $scalar_value_1_2;
my $scalar_value_2_2;
my $file_2 = "/test/test2.txt";
open (TEST_2, "<$file_2") or die "$!";
while (TEST_2) {
($scalar_value_1_2, $scalar_value_2_2) = split( '=' );
$hash1{$scalar_value_1_2}{'value_1_2'} = $scalar_value_1_2;
$hash1{$scalar_value_1_2}{'value_2_2'} = $scalar_value_2_2;
}
close TEST_2;
foreach my $scalar_value_1_2 (sort keys %hash1) {
print "$hash1{$scalar_value_1_2}{'value1_2'} | $hash1{$scalar_value_1_2}{'value1_2'}";
}
现在如何根据第一个散列是否包含相似键来比较两个散列以生成新值?
if ($hash1{$scalar_value_1_2}{'value1_2} eq $hash1{$scalar_value1}{'value1'}) {
my $scalar_value_2_2; = $hash1{$scalar_value1}{'value2'};
print "YES MATCH: $scalar_value_2_2\n";
} else {
print "N0 MATCH: $scalar_value_2_2\n";
}
【问题讨论】:
-
查看侧边栏中的所有“相关”链接——在前几个链接中可以有类似的算法。