sub huge_function { my $many, $variables, ...; # do something # do something else } #### { my $many, $variables, ...; # accessible inside all closed over subs here sub previously_huge_function { # set $many ... do_something(); do_something_else(); } sub do_something { my $internal_var; # access $many... } sub do_something_else { my $internal_var; # access $many... } }