my @array1; my @array2; my %arrayhash=( array1=>\@array1, array2=>\@array2, ); #### my %arrayhash=( array1=>[], array2=>[], ); #### push @{$arrayhash{$name}},$value; $arrayhash{$name}->[$index]=$value; foreach my $item (@{$arrayhash{$name}}) { ... } foreach my $index (0.. $#{$arrayhash{$name}}) { ... }