main_file.pl ------------------- use strict; use Env; use Getopt::Long; use Config::Properties; use Net::FTP::Recursive; use Net::SFTP::Foreign; use File::Copy; use File::Basename; use Cwd; use Fcntl ':mode'; use MIME::Base64::Perl; use Net::MySQL; ... if(something){ require("sub_file.pl"); sub_from_sub_file(); } ... sub_file.pl ------------------- use strict; use XML::LibXML; use Config::Properties; use DBI; use threads; ... sub_from_sub_file(){ print "Before\n"; my $thr = threads->new(\&sub1); print "After\n"; } sub sub1{ print "HI!\n"; } ...