in reply to array of hashes, categorized by array index
my @report; while (my $line = <$log_file>) { my @fields = (split / /, $line); $report[$_]{$fields[$_]}++ for 2,4,5,9,7,1; }
should do! (untested)
But I would rather use names for each column in a HoH (since you are skipping indices), so
$report{ $column[$_] }{ $fields[$_] }++ for 2,4,5,9,7,1;
might be better! (for a hash my %report of course)
Cheers Rolf
( addicted to the Perl Programming Language)
using column-numbers as names/keys in a HoH
use strict; use warnings; use Data::Dump qw/dd/; my %report; while (my $line = <DATA>) { next if $line =~ /^\s*$/; # skip empty lines my @fields = (split / /, $line); $report{$_}{$fields[$_]}++ for 2,4,5,9,7,1; } dd \%report; __DATA__ 483 OS dx-32 1 charles list4 aardvark.com ty-off lx-on C 01 483 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
thats what you want?
{ 1 => { DS => 1, OS => 1, XO => 1 }, 2 => { "dx-14" => 1, "dx-32" => 2 }, 4 => { charles => 1, james => 1, sully => 1 }, 5 => { list3 => 1, list4 => 1, nolist => 1 }, 7 => { "ty-off" => 1, "ty-on" => 2 }, 9 => { B => 1, C => 1, V => 1 }, }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: array of hashes, categorized by array index
by tevus_oriley (Novice) on Jun 27, 2013 at 15:28 UTC |