use Cwd; my $cwd = cwd(); # untargz everything in current dir for my $tgz( glob("$cwd/*.tar.gz") ) { print `tar -xzf $tgz`; } opendir DIR, $cwd or die $!; my @dirs = grep{ -d $_ and ! m/^./ } readdir DIR; closedir DIR; for my $dir ( @dirs ) { chdir "$cwd/$dir"; print `perl Makefile.PL && make && make test && make install`; }