in reply to How to move a windows perl installation??

If you are using the Activestate Perl then you will have a reloc_perl.bat in the bin directory which it uses to perform the initial relocation when it is installing.

/J\

Replies are listed 'Best First'.
Re^2: How to move a windows perl installation??
by blueAdept (Beadle) on Jul 21, 2004 at 20:08 UTC
    Thanks but i'm not using ActiveState's perl. I'm building the normal perl distribution myself. I figured they are doing "something" like this, but I don't want to ripp off of them -- so i'm not even going to look inside of that script/file :-) And I was curious if this was a platform specific or generic issue.. (would seem to be a generic one right?)
      Tha main point is the change of the value FROMPATH (let's say c:\perl) to DESTPATH (c:\utils\perl) from all the executable files. On Win32 are all the scripts, bat and perl.exe. On linux are the scripts and perl binary.

      So, the change for scripts and bats are just to change one scring to another. For binaries is just to change the value but keeping the size:

      my $nullpad = "\0" x (length($frompath) - length($destpath)) ; open (FROM,"c:\perl\bin\perl.exe") ; binmode(FROM) ; open (TO,">c:\utils\bin\perl.exe") ; binmode(TO) ; while( my $line = <FROM> ) { $line =~ s/\Q$frompath\E(.*?)\0/$destpath$1$nullpad\0/gs ; print TO $line ; } close (TO) ; close (FROM) ;
      So, for scripts is 100% portable, and for binaries it should be 100% portable too, but the DESTPATH need to fit in the reserved area for the string (char*) in the constant in the binary. In other word, the DESTPATH need to be small to guarantee that it will worl 100%.

      Graciliano M. P.
      "Creativity is the expression of the liberty".