如何在 perl 中将变量的内容分配给变量的名称?
How can I assign a variable's content to a variable's name in perl?
例如
$get = <>;
chomp($get);
$$get = "something";
如果用户为 $get 输入名称
我想将 "something" 分配给 $name
有很多方法可以做到这一点,但你真的不应该这样做。请改用哈希。
use strict;
use warnings;
my $get = <>;
chomp $get;
my %input;
$input{$get} = "something";
A "hash"(或某些其他语言中的 "dictionary")就像*一个 key-value 对数组。这实现了您所描述的,因为您可以为变量赋值而无需该变量的固定标识符。
*: 哈希是 不是 数组。
参见this tutorial on Perl101。此答案中的以下代码片段来自此站点。
您可以使用以下语法创建哈希:
my %stooges = (
'Moe', 'Howard',
'Larry', 'Fine',
'Curly', 'Howard',
'Iggy', 'Pop',
);
使用{}
访问和修改值。您也可以使用此语法添加新值。
print $stooges{'Iggy'}; #get existing
$stooges{'Iggy'} = 'Ignatowski'; #Overwrite
$stooges{'Shemp'} = 'Howard'; #Set new
您可以使用 delete
函数删除 key-value 对。
delete $stooges{'Curly'};
您可以使用相同的(关键字)词获取值或键的列表:
my @stooge_first_names = keys %stooges;
my @stooge_last_names = values %stooges;
例如
$get = <>;
chomp($get);
$$get = "something";
如果用户为 $get 输入名称 我想将 "something" 分配给 $name
有很多方法可以做到这一点,但你真的不应该这样做。请改用哈希。
use strict;
use warnings;
my $get = <>;
chomp $get;
my %input;
$input{$get} = "something";
A "hash"(或某些其他语言中的 "dictionary")就像*一个 key-value 对数组。这实现了您所描述的,因为您可以为变量赋值而无需该变量的固定标识符。
*: 哈希是 不是 数组。
参见this tutorial on Perl101。此答案中的以下代码片段来自此站点。
您可以使用以下语法创建哈希:
my %stooges = (
'Moe', 'Howard',
'Larry', 'Fine',
'Curly', 'Howard',
'Iggy', 'Pop',
);
使用{}
访问和修改值。您也可以使用此语法添加新值。
print $stooges{'Iggy'}; #get existing
$stooges{'Iggy'} = 'Ignatowski'; #Overwrite
$stooges{'Shemp'} = 'Howard'; #Set new
您可以使用 delete
函数删除 key-value 对。
delete $stooges{'Curly'};
您可以使用相同的(关键字)词获取值或键的列表:
my @stooge_first_names = keys %stooges;
my @stooge_last_names = values %stooges;