my @names = qw( a b c d e f g ); my %var; @var{@names} = splice(@array, 0, 8); foreach my $name (@names) { $var{$name} =~ s/\.//g; } # now, you can reference what was $a in your old code as $var{a}, etcetera