sub foo { my $self = shift; local $self->{some_val} = $self->get_val; # do a bunch of stuff $self->foo; }