Perl,从数组中定义标量变量

时间:2015-01-29 10:12:07

标签: perl arraylist out scalar

如何在存储在数组中的值中定义perl中的标量变量。 让我们说我有一个这样的数组:

my @parameter_list = ("admin_name", "admin_pass", "customer_id", "email", "domains", "subdomains", "aliases", "emails", "ftps", "sqldbs", "sqlusers", "space");

在这个数组中,我想用这个代码创建标量变量。我无法弄清楚如何做到这一点:

foreach (@parameter_list) { my \$("test"); }

1 个答案:

答案 0 :(得分:4)

听起来您希望能够通过数组中的名称调用变量。您可以创建一个哈希,允许您按名称而不是索引访问列表。下面的代码显示了如何从参数名称数组创建哈希。

use strict;
use warnings;

my @parameter_list = ("admin_name", "admin_pass", "customer_id", "email", "domains", "subdomains", "aliases", "emails", "ftps", "sqldbs", "sqlusers", "space");
my %parameters;

foreach my $parameter ( @parameter_list ){
        $parameters{$parameter} = undef;
}

$parameters{'admin_name'}='scott';
$parameters{'admin_pass'}='tiger';

print "DB login: $parameters{'admin_name'}/$parameters{'admin_pass'}\n";

<强>输出

DB login: scott/tiger

这将创建一个没有设置值的参数名称的哈希。然后,您可以通过提供参数名称来设置值,类似地,您可以通过为变量赋予参数名称来访问该值。

还有其他一些方法可以用地图之类的东西来做到这一点,但是我把它们留下来保持简单。

希望这能解决你的问题,问题是你想要达到的目标是不是很清楚。