Почему вы не хотите использовать то, что работает?
Одним из способов решения подобных проблем является отладка ваших структур данных. На каждом шаге вы печатаете данные, которые вы должны увидеть, действительно ли там есть то, что вы ожидаете. Это может быть так просто, как:
print "array is [@array]\n";
Или для сложных структур данных:
use Data::Dumper;
print Dumper( \@array );
В этом случае вы бы видели, что @array
имеет только один элемент, поэтому там должен быть максимум.
Если вы хотите увидеть, как работают списки и аргументы подпрограмм, посмотрите Learning Perl .