=pod one time, ppm was giving me grief, and would not install a local copy of Wx, so I cracked it open, and I came up with the following (I had extracted the tarball, and in my current directory I had the blib directory, which is practically all that a ppm package contains, so I typed 'perl' and then pasted the following in. I could turn it into a nice commandline program ... maybe I will sometime soon ;). =cut #!/usr/bin/perl -w use Cwd; use strict; use Config; use ExtUtils::Install; use ActivePerl::DocTools; my %current_package; ########################################################################################## #$current_package{'NAME'} = 'Wx'; print "Enter the package name :"; $current_package{'NAME'} = ; chomp($current_package{'NAME'}); ################################################################################# my $inst_archlib = $Config{installsitearch}; my $inst_root = $Config{prefix}; my $packlist = MM->catfile("$Config{installsitearch}/auto", split(/-/, $current_package{'NAME'}), ".packlist"); # copied from ExtUtils::Install my $INST_LIB = MM->catdir(MM->curdir,"blib","lib"); my $INST_ARCHLIB = MM->catdir(MM->curdir,"blib","arch"); my $INST_BIN = MM->catdir(MM->curdir,'blib','bin'); my $INST_SCRIPT = MM->catdir(MM->curdir,'blib','script'); my $INST_MAN1DIR = MM->catdir(MM->curdir,'blib','man1'); my $INST_MAN3DIR = MM->catdir(MM->curdir,'blib','man3'); my $INST_HTMLDIR = MM->catdir(MM->curdir,'blib','html'); my $INST_HTMLHELPDIR = MM->catdir(MM->curdir,'blib','htmlhelp'); my $inst_script = $Config{installscript}; my $inst_man1dir = $Config{installman1dir}; my $inst_man3dir = $Config{installman3dir}; my $inst_bin = $Config{installbin}; my $inst_htmldir = $Config{installhtmldir}; my $inst_htmlhelpdir = $Config{installhtmlhelpdir}; my $inst_lib = $Config{installsitelib}; while (1) { my $cwd = getcwd(); $cwd .= "/" if $cwd =~ /[a-z]:$/i; eval { ExtUtils::Install::install({ "read" => $packlist, "write" => $packlist, $INST_LIB => $inst_lib, $INST_ARCHLIB => $inst_archlib, $INST_BIN => $inst_bin, $INST_SCRIPT => $inst_script, $INST_MAN1DIR => $inst_man1dir, $INST_MAN3DIR => $inst_man3dir, $INST_HTMLDIR => $inst_htmldir, $INST_HTMLHELPDIR => $inst_htmlhelpdir},0,0,0); }; # install might have croaked in another directory chdir($cwd); # Can't remove some DLLs, but we can rename them and try again. if ($@ && $@ =~ /Cannot forceunlink (\S+)/) { my $oldname = $1; $oldname =~ s/:$//; my $newname = $oldname . "." . time(); unless (rename($oldname, $newname)) { return 0; } } # Some other error elsif($@) { return 0; } else { last; } }