in reply to Re: Using a number to determine which array to push onto
in thread Using a number to determine which array to push onto
No need to stop using employee names.
use strict; use warnings; use Data::Dumper qw( Dumper ); my %employees = ( '01' => 'Joe', '02' => 'Ed', '03' => 'Sam', '04' => 'Wendy', ); 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 %transactions_by_employee; for (@transactions) { my ($employee_number) = /\s(\d+)\s/; my $employee_name = $employees{$employee_number} // 'unregistered'; push @{ $transactions_by_employee{$employee_name} }, $_; } print(Dumper(\%transactions_by_employee));
That said, it might be advantageous to only resolve the employee numbers during output. This would allow one to differentiate the different unregistered employees, for example.
|
|---|