sub transform { my ($data,$log_fh) = @_; # Localize the log filehandle so all subroutines can see it local *LOG_FH = $log_fh; ... foo($bar); } sub foo { my ($bar) = @_; print LOG_FH "Processing $bar.\n"; ... }