in reply to (Expert) Splicing a slice

What about:

sub foo { my $self = shift; # What would be in the slice. my $extra = $extra{$self}; # The hidden stuff. ... } DESTROY { delete($extra{$self}); }

No magic, so it's reliable.