Как использовать переменную в качестве хэш-ключа в Perl? - PullRequest
5 голосов
/ 12 сентября 2011

Я боролся с назначением переменной Perl в качестве переменной.Я пытаюсь предложить пользователю ввести значение, которое будет храниться в переменной, которая используется как ключ для доступа и печати значения, хранящегося в хеш-таблице.Следующий код помогает проиллюстрировать мою проблему:

my $key = 0;
print( "Enter the value for your key\n" );
$key = <>;
my %hash = (
   a => "A",
   b => "B",
);
    print( $hash{$key} );

Проблема в том, что print ($ hash {$ key});ничего не выводит на экран, но printf ($ hash {"a"}; делает; я этого не понимаю. Любая помощь и разъяснения будут высоко оценены. Заранее спасибо.

1 Ответ

12 голосов
/ 12 сентября 2011

$key в конечном итоге получает (например) "a\n", а не "a". Используйте встроенную функцию chomp для удаления завершающего символа новой строки:

$key = <>;
chomp $key;
...
print $hash{$key};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...