use Data::Dumper; use strict; use warnings; my $file = "afile"; my $alias = "somealias"; my %num; my %val; $num{$alias}{save} = 2; $val{$file}[3][$num{$alias}{save}] = 1; print Dumper(\%val); #### $VAR1 = { 'afile' => [ undef, undef, undef, [ undef, undef, 1 ] ] };