in reply to 1 $var 2 2$vars part 2
in thread 2 $vars 2 1 $var

does this suit you?
use strict; my @tablenums = ('1', '2', '3'); my %tables = ( '1' => { name => "john", data => [] }, '2' => { name => "mike", data => [] }, '3' => { name => "harry", data => [] }, ); foreach (@tablenums) { push @{$tables{$_}->{data}}, "any", "data", "goes", "here"; } print "$tables{1}->{name}`s data is @{$tables{1}->{data}}!"; #prints "john`s data is any data goes here!"
Update: If you insist using dedicated arrays (which is bad style) you could use this code:
use strict; my @tablenums = ('1', '2', '3'); my (@johnData, @mikeData, @harryData); my %tables = ( '1' => { name => "john", data=>\@johnData }, '2' => { name => "mike", data=>\@mikeData }, '3' => { name => "harry", data=>\@harryData }, ); foreach (@tablenums) { push @{$tables{$_}->{data}}, "any", "data", "goes", "here"; } print "john`s data is @johnData!"; #prints "john`s data is any data goes here!"
see perlref and perlreftut


holli, /regexed monk/