Toby Stuart wrote: > > use strict; > use warnings; > > my %records; > > my $surname; > my $given_name; > my $price;
You create these three variables because? > my @fields; You should declare this _inside_ the loop. > my $i=0; > while (<DATA>) > { > @fields = unpack("A10A10A7", $_); my @fields = unpack 'A10A10A7', $_; > $records{$i} = { ^^^^ Why not just use an array? > given_name => $fields[0], > surname => $fields[1], > price => $fields[2] > }; push @records, { given_name => $fields[0], surname => $fields[1], price => $fields[2] }; Or: @{$records[$i++]}{ qw/given_name surname price/ } = unpack 'A10A10A7', $_; > $i++; > } > > print "$records{0}{surname}\n"; > print "$records{0}{given_name}\n"; > print "$records{0}{price}\n"; > > print "\n"; > > print "$records{1}{surname}\n"; > print "$records{1}{given_name}\n"; > print "$records{1}{price}\n"; > > __DATA__ > Kevin Old 001.000 > Someone Else 1.000 John -- use Perl; program fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]