in reply to Outer Join on 2 files

Here is a method, if I understand your wording right, to use header TEXT indexes.

use strict; use warnings; my $File_Deal = $ARGV[0]; my $File_ATT = $ARGV[1]; open(F1, "<", $File_Deal) or die $!; my $header_line; my @header_array; # File_Deal chomp( $header_line = <F1> ); @header_array = split('\|', $header_line ); my %HEADER_File_Deal = map { $header_array[$_] => $_ } (0..@header_arr +ay-1); my %hash = (); while( <F1> ) { chomp; my @values = split(/\|/, $_); # parent_cusp|cusp|isin|deal|tranche|det_date|col_type my $key = $values[$HEADER_File_Deal{"parent_cusp"}] . $values[$HEADER_File_Deal{"deal"}] . $values[$HEADER_File_Deal{"tranche"}]; print "key=$key is ( @values )\n"; }

Replies are listed 'Best First'.
Re^2: Outer Join on 2 files
by FreeBeerReekingMonk (Deacon) on Apr 18, 2015 at 08:40 UTC

    ...or not... here is the way to fetch it on index

    use strict; use warnings; my $File_Deal = $ARGV[0]; my $File_ATT = $ARGV[1]; open(F1, "<", $File_Deal) or die $!; my $header_line; my @header_array; # File_Deal header, throw away chomp( $header_line = <F1> ); my %hash = (); while( <F1> ) { chomp; my @values = split(/\|/, $_); # 0=parent_cusp|1=cusp|2=isin|3=deal|4=tranche|5=det_date|6=col_type my $key = $values[1-1] . $values[4-1] . $values[5-1]; print "key=$key is ( @values )\n"; }