Czy „shift” jest zły za przetwarzanie parametrów podprogramu Perla?

Często używamshift rozpakować parametry funkcji:

sub my_sub {
    my $self = shift;
    my $params = shift;
    ....
}

Jednak wielu moich kolegów głosi toshift jest w rzeczywistości zły. Czy mógłbyś wyjaśnić, dlaczego powinienem preferować

sub my_sub {
    my ($self, $params) = @_;
    ....
}

doshift?

questionAnswers(8)

yourAnswerToTheQuestion