НапримерКак я могу присвоить содержимое переменной имени переменной в perl?
$get = <>;
chomp($get);
$$get = "something";
если вводится имя пользователя для $ получить Я хочу, чтобы назначить «что-то» до $ назвать
НапримерКак я могу присвоить содержимое переменной имени переменной в perl?
$get = <>;
chomp($get);
$$get = "something";
если вводится имя пользователя для $ получить Я хочу, чтобы назначить «что-то» до $ назвать
«хэш» (или «словарь» на некоторых других языках), как * массив пар ключ-значение. Это позволяет получить то, что вы описываете, потому что вы можете присвоить значение переменной без фиксированного идентификатора для этой переменной.
*: Хеши не массивы.
См. 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;
Было бы более распространено писать ваш хэш как разделитель 'fat comma' '=>'. Означает одно и то же, но делает пары с ключом полезными. – Sobrique
Ну, я надеялся, что посетители перейдут по ссылке, так как там упомянут жирный стиль запятой. Я не знал, что это было более распространено, хотя, – Arc676
* «Хэши не массивы» * зачем упоминать массивы в первую очередь? – Borodin
Есть способы сделать это, но вы действительно не должны. Вместо этого используйте хэш.
use strict;
use warnings;
my $get = <>;
chomp $get;
my %input;
$input{$get} = "something";
Что вы ищете является словарь (так называемый «хэш» в Perl). См. [This SO post] (http://stackoverflow.com/questions/19923585/how-to-parse-a-key-value-based-dictionary-using-perl) – Arc676
http://perl.plover.com/ varvarname.html – Sobrique