use strict; use warnings; my $file_in1 = '...'; my $file_in2 = '...'; my $file_out = '...'; open(my $fh_in1, '<', $file_in1) or die("Unable to open input file $file_in1: $!\n"); open(my $fh_in2, '<', $file_in2) or die("Unable to open input file $file_in2: $!\n"); open(my $fh_out, '>', $file_out) or die("Unable to create output file $file_out: $!\n"); my %cat2s_by_cat1; while (<$fh_in2>) { chomp; my ($cat1, $cat2) = split /=/; push @{ $cat2s_by_cat1{$cat1} }, $cat2; } while (<$fh_in1>) { chomp; my @fields = split /=/; my $cat1 = $fields[-1]; exists( $cat2s_by_cat1{$cat1} ) or die("Cat1 $cat1 not found in file2\n"); for my $cat2 ( @{ $cat2s_by_cat1{$cat1} } ) { print $fh_out (join('=', @fields, $cat2), "\n"); } }
In reply to Re^7: Help needed please: Data Manipulation in 2D Array
by ikegami
in thread Help needed please: Data Manipulation in 2D Array
by Syntenty
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |