【问题标题】:Perl, Define scalar variables out of an arrayPerl,从数组中定义标量变量
【发布时间】:2015-03-28 12:26:17
【问题描述】:

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

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

在这个数组中,我想用这段代码创建标量变量。我不知道该怎么做:

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

【问题讨论】:

  • 官方回复XY problem为什么你想做这样的事情。
  • 我可以在代码的另一个地方再次使用这个参数列表,而不是重新编写它。
  • 听起来你需要把它们放在一个哈希中,然后你可以通过名字来调用它们。
  • 好的,哈希也可以。你能给我举个例子吗?

标签: perl arraylist out scalar


【解决方案1】:

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

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

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

还有其他方法可以用地图之类的东西来做到这一点,但为了简单起见,我把它们省略了。

希望这可以解决您的问题,但问题不是很清楚您想要实现的目标。

【讨论】:

  • 如果这回答了您的问题,请接受答案。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多