Удаление элементов массива - PullRequest
1 голос
/ 13 июля 2010

как мне удалить элемент из массива Perl ref?У меня есть его индекс, и я не хочу устанавливать элемент на undef, но полностью его удалить.

Например, как мне изменить $a = [1, 2, 3]; на $a = [1, 3];.

Ответы [ 2 ]

5 голосов
/ 13 июля 2010

Использование сращивание :

my @array = (44,55,66);
splice @array, 1, 1; # 55
@array; # (44,66)

my $array_ref = [44,55,66];
splice @{ $array_ref }, 1, 1; # 55
$array_ref; # (44,66)

Я заметил, что вы не уверены в типах данных и ссылках, поскольку Devel :: REPL отображает их только в справочной форме.Вы определили ссылку на массив в вопросе, а не массив.Сравните мои примеры кода.

5 голосов
/ 13 июля 2010

Использование splice () :

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