Доступ к элементу массива с переменной PERL - PullRequest
0 голосов
/ 26 января 2020

Я новичок в perl.

Я сталкиваюсь с проблемой доступа к элементам массива по переменным, как, например, в других языках. C C ++ Python3 JavaScript

Ожидаемый способ сделать то же самое в Perl:

`print "@array[$var]" ;`

Он должен печатать значение массива в $ var (например, 2).

Но это дает ошибку. Любой другой способ сделать то же самое.

Ответы [ 2 ]

3 голосов
/ 26 января 2020

Для доступа к значению элемента массива @array используется $array[$i].

. Это задокументировано в perldata .

И да, $array[$i] может использоваться в строковых литералах в двойных кавычках.

print("$array[$i]\n");

Обратите внимание, что @array[$i] также работает, но с предупреждением. Вы должны использовать @array[...] только когда есть возможность получить несколько элементов.

$ perl -e'
   use strict;
   use warnings;
   my @array = "a".."z";
   my $var = 2;
   print "@array[$var]\n";
'
Scalar value @array[...] better written as $array[...] at -e line 7.
c

$ perl -e'
   use strict;
   use warnings;
   my @array = "a".."z";
   print "@array[2..4]\n";
'
c d e
1 голос
/ 26 января 2020

Попробуйте это: $array[$var]. То, что вы написали раньше, было неверным способом доступа к срезу массива. Если вам нужен кусок, попробуйте это: @array[$foo..$bar].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...