# Rarely, you should replace: sub foo { # ... my $bar= init() if condition(); # ... } # With: BEGIN { my $prevBar; sub foo { # ... my $bar= $prevBar; $prevBar= $bar= init() if condition(); # ... } }