in reply to array of hashes, categorized by array index

In your log line sample there are two lines with the same first number. however if the first number is the log line and you use a sample where all the first numbers are different this shows you how to create a hash of arrays where the key is the first number in the line.

#!/usr/bin/perl use strict; my @sample = ("483 OS dx-32 1 charles list4 aardvark.com ty-off lx-on C 01", "495 DS dx-14 1 james list3 23.456.12.7 ty-on lx-on B 01", "769 XO dx-32 5 sully nolist widgets.com ty-on lx-on V 07"); my %hoa; foreach my $line (@sample){ my @array = split(/ /, $line); my $key = $array[0]; $hoa{$key} = \@array; #this is a reference } my @keys = keys %hoa; foreach my $item(@keys){ print "log line $item\n"; my @array = @{$hoa{$item}}; #this is dereferenced foreach my $part(@array){ print "$part - ";} print "\n"; }
This will not work if you eliminate the my designation for @array.