my @tablenums = ('1', '2', '3'); my (@johnData, @mikeData, @harryData); my %Tables = ( '1' => "john", '2' => "mike", '3' => "harry", ); foreach (@tablenums){ push ( eval "\@${Tables{$_}}Data", any_data_goes_here); }