Assuming your 1st file is named 'f1.txt' and your 2nd is 'f2.txt':
use warnings; use strict; my %areas; my $file; my $fh; $file = 'f2.txt'; open $fh, '<', $file or die "Can not open file $file: $!"; while (<$fh>) { next if $. == 1; my ($name, $area) = split; $areas{$name} = $area; } close $fh; my $name_line = 0; my $name; my $area; $file = 'f1.txt'; open $fh, '<', $file or die "Can not open file $file: $!"; while (<$fh>) { chomp; if ($. == 1) { print "$_ Area\n"; next; } my @tokens = split; if (scalar @tokens == 1) { print "$_\n"; $name = $tokens[0]; $area = $areas{$name}; $name_line = 1; } else { if ($name_line) { $name_line = 0; print "$_ $area\n"; } else { print "$_\n"; } } } close $fh; __END__ Name measure Age Area Eric Test1 40 16 Texas Test2 35 16.5 Test3 60 27 Tets4 20 30 Dan Test1 15 50 NY Test2 22 70
In reply to Re^2: How to merge two files?
by toolic
in thread How to merge two files?
by kayj
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |