>вручную проверять количество аргументовНе занимаюсь подобными глупостями.
>присваивать значения по умолчанию
Очень редко нужно
>при наличии явной сигнатуры можно проверять правильность вызова функций на этапе трансляции
И получить ложную уверенность в ее правильности. Спасибо, мне не нужно. Перепутать порядок следования аргументов куда легче, чем забыть их количество.
Единственное, что мне слегка надоедает писать, это строки типа
my $self=shift;
Я даже знаю несколько способов как этого избежать, но применять их мне еще более лениво :)