я обнаружил, что это, как вы использовать диапазоны с ссылкой на массиве:
@$aref[2..$#$aref]
Таким образом, ситуация такова, что у меня нет доступа ко всем этим различным средам Perl (для тестирования), но если код , , который в итоге будет скомпилирован на всех из них, не скомпилируется, у меня проблемы.
Perl версии: 5.16.2
, 5.10.1
и 5.8.8
Кто-нибудь знает?
Это нелогично для Google для интерпретаций синтаксиса perl без умения. Я недостаточно умен, чтобы сделать это для этого.
P.S. Вы знали? @$arr_ref[-3..$#$arr_ref]
дает вам три последних элемента, затем к нему добавляется весь массив. По-видимому, это означает, что [-3..5]
означает: дать элементы -3
(= 3) до 5
, затем добавить 0
через 5
.
Это потому, что perl не имеет дело с этим разумным образом, если оба индекса диапазона не имеют одинакового знака: чтобы получить кусочек, содержащий пятый от последнего до конца, вы просто используете @arr[-5..-1]
.
Это разумно - '-3 .. 5' - это серия -3, -2, -1, 0, 1, ... 5, и вы запрашиваете кусочек этих индексов. ** У вас есть массив из шести элементов **, поэтому элемент с индексом -3 также должен быть таким же, как и в индексе 3. – pilcrow
Теперь имеет смысл теперь, когда я знаю, что диапазоны - это вещь сама по себе, и служат цели вне разреза массива. –