Perl довольно либерален в передаче аргументов - это круто, но неудобно. Чтоб получить читабельный код я практически в каждой функции делаю что-то на подобии
sub func {
my ($param1,$param2) = @_;
После этого или до этого, мне ещё надо проверить на too many/few parameters. В других языках эта обязанность возложена на среду, т.е. python код
def func(param1,param2):
print param1,param2
func(1)
Вызовет:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: func() takes exactly 2 arguments (1 given)
Дальше ещё начинают фишки с дефолтным значением и необязательными значениями. В perl это все обязательно делать руками каждый раз?