My code looks like this; but the subroutine call won't work. ------------------------------------------ for my $file (glob "$Sources/*.pl") { $file =~ s/(.*).pl/$1/; my $name = $file."::display"; print " Function:: ", $name, "\n"; &${name}(); } ------------------------------------------ and in Sources/data1.pl:: package Data1; my $name = "Data1"; sub update() { print "Update Data.1 source\n"; } sub display() { print "Display Data.1 source\n"; } sub setup() { print "Setup Data.1 source\n"; }