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

Avi*_*nee 2 perl variable-assignment dynamic-variables

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

现在

在var.pl中

$admin_userid = "admin";
$guest_userid = "guest";
Run Code Online (Sandbox Code Playgroud)

在config.txt中 - 这具有user的值 - 可以是admin或guest

user=admin/guest
Run Code Online (Sandbox Code Playgroud)

在abc.pl

require var.pl

$get_user = admin or guest (get this value from config.txt)
**$myfinal_userid = ??**
Run Code Online (Sandbox Code Playgroud)

如果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中实现这一目标?

cho*_*oba 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";
Run Code Online (Sandbox Code Playgroud)