如何在存储在数组中的值中定义perl中的标量变量。 让我们说我有一个这样的数组:
my @parameter_list = ("admin_name", "admin_pass", "customer_id", "email", "domains", "subdomains", "aliases", "emails", "ftps", "sqldbs", "sqlusers", "space");
在这个数组中,我想用这个代码创建标量变量。我无法弄清楚如何做到这一点:
foreach (@parameter_list) { my \$("test"); }
答案 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
这将创建一个没有设置值的参数名称的哈希。然后,您可以通过提供参数名称来设置值,类似地,您可以通过为变量赋予参数名称来访问该值。
还有其他一些方法可以用地图之类的东西来做到这一点,但是我把它们留下来保持简单。
希望这能解决你的问题,问题是你想要达到的目标是不是很清楚。