Perl变量值作为另一个变量名

时间:2012-11-02 11:55:08

标签: perl variable-assignment dynamic-variables

我有一个perl脚本(abc.pl)和2个配置文件(一个var.pl和一个config.txt)

现在

在var.pl

$admin_userid = "admin";
$guest_userid = "guest";
config.txt中的

- 具有user的值 - 可以是admin或guest

user=admin/guest

在abc.pl

require var.pl

$get_user = admin or guest (get this value from config.txt)
**$myfinal_userid = ??**

如果config.txt中的用户是admin,我希望myfinal_user_id的值为admin,如果是guest,则为guest。

即。根据$ get_user的值,我想要userid的值 - $ {$ get_user}。“_ userid”  例如:如果config.txt有user = admin,$ get_user = admin,我想要$ myfinal_userid = $ admin_userid。同样对于客人。这必须是动态的。

最后我想要的是,从config.txt中了解用户并基于它,从var.pl获取用户ID并将其存储在myfinal_userid中。

让我知道如何在perl中实现这一目标?

1 个答案:

答案 0 :(得分:5)

使用哈希来存储id:

my %id = ( admin => 'admin',
           guest => 'guest',
         );

my $get_user = 'admin';  # Read this from the config.
my $final_id = $id{$get_user};

my $other_user = 'guest';
my $another_final_id = $id{$other_user};

print $final_id, "\n", $another_final_id, "\n";