Как нарезать массив ref и вернуть ссылку на массив в одной строке? - PullRequest
1 голос
/ 16 апреля 2019

Рассмотрим следующие строки кода. Я хочу нарезать массив ref $ a и вернуть результат в виде ссылки на массив, присвоенный $ b. Я могу сделать это в две строки, как показано на рисунке. Я зашла в тупик в моих попытках сделать это в одну строку! Как это можно сделать?

$a = [1,2,3,4,5];
###the desired result###########################
@b = @{$a}[1 .. @{$a} - 1];
$b = \@b; # $b is [2,3,4,5]
################################################
###trying to get the desired result in one line##
$b = \@{$a}[1 .. @{$a} - 1]; # $b is \5;
$b = \{@{$a}[1 .. @{$a} - 1]}; # $b is \{ 2 => 3, 4 => 5 }
$b = $a->[1 .. @{$a} - 1]; # $b is 1
$b = $a->@[1 .. @{$a} - 1]; # $b is 5

Ответы [ 2 ]

4 голосов
/ 16 апреля 2019

можно сказать

$b = [ @{$a}[1 .. @{$a} - 1] ];
2 голосов
/ 16 апреля 2019

Вдохновленный этот вопрос , есть также

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