sub TIESCALAR { bless \(my $foo = pop), shift; } sub STORE { ${ +shift } = pop } sub FETCH { ${ +shift } } ### sub foo { my ($self, $foo) = @_; ... } sub foobar { my ($self, %options) = @_; ... } #### # 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; ... }