in reply to Re^6: Help needed please: Data Manipulation in 2D Array
in thread Help needed please: Data Manipulation in 2D Array

Variable length ordered list? Array!
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"); } }

Replies are listed 'Best First'.
Re^8: Help needed please: Data Manipulation in 2D Array
by Syntenty (Initiate) on May 05, 2008 at 09:30 UTC

    The code works! You are amazing! Thank you so much!