use Bar; use CGI; our $q = CGI->new(); Bar::do_stuff(\$q); #### sub do_stuff { # the issue is here my $uf = $main::q->upload($fh); open (FH, "> $uld/$name") while (<$uf>) {print FH}; close(FH); return; }