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

标签 perl variable-assignment dynamic-variables

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

现在

在 var.pl 中

$admin_userid = "admin";
$guest_userid = "guest";

在 config.txt 中 - 其值为 user - 可以是管理员或访客

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,我希望 myfinal_user_id 的值为 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 中实现此目的?

最佳答案

使用哈希来存储 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";

关于Perl 变量值作为另一个变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13194759/

相关文章:

java - 在 Java 中为变量分配动态名称

regex - 用于 CSV 校正的 Perl REGEX 模式

javascript - 你能在不使用 eval() 的情况下使用变量名来引用对象吗

perl - 我是否需要在调用 Win32::OLE->LastError 时捕获错误?

C++ 多值初始化

Python混合全局变量和局部变量?

php - 将数据库查询的结果插入 Controller 中的变量中 - CODEIGNITER

c++ - C++中动态数组的长度信息是关联指针还是首元素地址?

perl - 我应该教初学者 Perl 程序员什么?

arrays - 将 $_ 输出插入数组