0x0007 Calculating nesting array level. Perl. Подсчёт уровня вложенности массива

Создание многомерных (многоуровневых) типов массивов допускается посредством использования функции array(), как и при работе с обычными типами массивов. Принципиальным отличием здесь является то, что в данном случае каждый элемент такого массива является также массивом. При этом глубина вложения массивов может быть сколь угодно большой.

Актуальность применения многомерных массивов в том, что с их помощью можно компактно хранить практически любую информацию. Таким образом, само их использование значительно повышает функциональный уровень любого языка программирования.

Одной из актуальных задач работы с такими объектами становится определение уровня вложенности массивов.

Данный код проходит по первым элементам массива и возвращает уровень вложенности.

sub t {
	return $_[1] if ref $_[0] ne 'ARRAY';
	t($_[0]->[0], ++$_[1]);
}