unless ( eval " use Tk; " ) { &do_install ('Tk'); } exec "my-real-program.plx"; # ... sub do_install ($) { my $pkg = shift; print "Installing $pkg module..."; if ($^O =~ /win/i) { `ppm install $pkg.PPD`; } else { chdir ('unix_pkg'); `tar -zxf $pkg.tar.gz`; chdir ($pkg); require "Makefile.PL"; `sudo gmake install`; } }