my $filename = '/var/lib/some_dir/sume_subdir/filename'; #### my $nspace = $filename; $nspace =~ s/[^a-zA-Z]/_/g; #### $nspace= "ROOT::NameSpace::$nspace"; #### open FILE, $filename or die $!; my @content = ; close FILE; #### my $eval = qq~package $nspace; sub handler { local $0 = $filename;~ . join('', @content); #### eval $eval; die $@ if $@; # will die if there are any compile time errors. #### my $codevector_name = join '::', $nspace, 'handler'; my $codevector = &\{ $codevector_name }; eval { $codevector->(@_) }; # pass arguments to the handler die $@ if $@