dvinciguerra
(usa Debian)
Enviado em 10/05/2016 - 08:20h
Você pode fazer isso... que é **super desaconselhado**
# isso fará exatamente o que você explicou
my @vars = qw/var1 var2 var3 var4/;
eval "my \$$_" for @vars;
Para necessidades como essas eu aconselho utilizar um hash e adicionar os valores conforme necessário:
# usando hash
my %vars = (var1 => 'valor 1', var2 => 'valor 2', var3 => 'valor 3', var4 => '');
say $vars{var1}; # exibe "valor 1"
# ou usando referencias
my $vars = {var1 => 'valor 1', var2 => 'valor 2', var3 => 'valor 3', var4 => ''};
say $vars->{var1}; # exibe "valor 1"
**Aviso**
Imagino que tenha sido apenas para demonstrar mas nunca use variáveis com apenas números no nome (ex.: $1, $2, $3 ...). Essas variáveis são especiais utilizadas para retornar o valor dos grupos encontrados nas expressões regulares.
Ref:
http://perldoc.perl.org/perlre.html#Capture-groups