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".
| [reply] [d/l] |