Не будем игнорировать на мгновение лучшую практику Damian Conway не более трех позиционных параметров для любой данной подпрограммы.
Есть ли разница между двумя приведенными ниже примерами в отношении производительности или функциональности?
Использование shift
:
sub do_something_fantastical {
my $foo = shift;
my $bar = shift;
my $baz = shift;
my $qux = shift;
my $quux = shift;
my $corge = shift;
}
Использование @_
:
sub do_something_fantastical {
my ($foo, $bar, $baz, $qux, $quux, $corge) = @_;
}
При условии, что оба примера одинаковы с точки зрения производительности и функциональности, что люди думают об одном формате над другим? Очевидно, что пример с использованием @_
- это меньше строк кода, но разве не более читаемо использовать shift
, как показано в другом примере? Мнения с хорошими рассуждениями приветствуются.