# Bad sub foo { my $self = shift; ... not using @_ anymore } sub bar { my $self = shift; my %options = @_; ... } # Worse sub foo { my $self = shift; my $foo = shift; my $bar = shift; ... } # Awful sub foo { my $self = shift; my $foo = shift; ... my $bar = shift; ... }