Как знак доллара и числа вместе работают в perl?

Сегодня я столкнулся с проблемой, требующей от меня определения максимального индекса массива в perl. Раньше я делал это так:

my @array = (1, 2, 3);
print $array[@array - 1];

Но сегодня я наткнулся на этот код:

my @array = (1, 2, 3);
print $array[$#array];

Я не смог найти ничего по этому поводу в документации. Что именно представляет собой конструкция $ # ? Это оператор? И как это работает, быстрее, чем первый кусок кода? Всегда ли он возвращает максимальный индекс массива? Устарела она или нет?

Я знаю, что это много вопросов, но все они могут быть сведены в один, и это то, что я действительно хочу знать: Как это работает?

21
задан Igor Zinov'yev 23 December 2011 в 17:20
поделиться