in reply to Using a number to determine which array to push onto
Use a hash, or more specifically a hash of arrays:
#! perl use strict; use warnings; use Data::Dumper; my @transactions = ( 'yadda 01 abc', 'yadda 03 sss', 'yadda 02 asdsdbc', 'yadda 02 adfgbc', 'yadda 01 abgxvc', 'yadda 02 azdfbc', 'yadda 04 azdfbc', 'yadda 04 abdc', ); my %results; foreach (@transactions) { my ($number) = /\s(\d+)\s/; push @{$results{$number}}, $_; } print Dumper \%results;
which outputs:
$VAR1 = { '01' => [ 'yadda 01 abc', 'yadda 01 abgxvc' ], '03' => [ 'yadda 03 sss' ], '04' => [ 'yadda 04 azdfbc', 'yadda 04 abdc' ], '02' => [ 'yadda 02 asdsdbc', 'yadda 02 adfgbc', 'yadda 02 azdfbc' ] };
You could also accomplish the above using an array of arrays, relying on the employee number as your index. See perlretut and/or perllol. For a discussion of why to use this structure as opposed to a large number of differently named arrays, see Why it's stupid to use a variable as a variable name.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Using a number to determine which array to push onto
by ikegami (Patriarch) on Dec 20, 2010 at 20:18 UTC |