如何将变量的内容分配给perl中变量的名称?

时间:2016-01-02 08:26:45

标签: perl variables assign

例如

$get = <>;
chomp($get);
$$get = "something";

如果用户输入$ get的名称 我想分配&#34;东西&#34;到$ name

2 个答案:

答案 0 :(得分:6)

有办法做到这一点,但你真的不应该这样做。请改用哈希。

use strict;
use warnings;

my $get = <>;
chomp $get;
my %input;
$input{$get} = "something"; 

答案 1 :(得分:4)

A&#34;哈希&#34; (或&#34;字典&#34;在其他一些语言中)就像*一组键值对。这实现了您描述的内容,因为您可以为变量赋值而不具有该变量的固定标识符。

*:哈希不是数组。

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功能删除键值对。

delete $stooges{'Curly'};

您可以使用相同的(关键)字词获取值或键列表:

my @stooge_first_names = keys %stooges;
my @stooge_last_names = values %stooges;