Did you read what you linked says? http://dwimperl.com/linux.html says perl dwimperl-linux-5.20.1-2-x86_64/perl/bin/reloc_perl dwimperl-linux-5.20.1-2-x86_64/perl/bin/ so why don't you do that, why don't you use https://github.com/dwimperl/dwimperl-linux/blob/master/src/reloc_perl?
The Portable.pm is not really what I want here as that would require the users to change their code
When you install any relocatable perl, the installer updates Config; If whatever installer you're providing your users doesn't do this, give them a http://www.citrusperl.com/helpweb/createdistribution.htm or a http://www.cavapackager.com/appdocs/installer.htm so that %Config gets updated when they install this new perl, once its installed, they can move it and run relocateperl again
So maybe I misunderstand what Portable does.
It updates %Config ... flash/usb drive? you stick it in, it gets a new driveletter ... all of %Config paths are now wrong ... it fixes this
The relocateperl of Citrusperl might do what I need here, but it is written in C and I could not find its source yet.
Its quite pure-perl, it comes with citrusperl, its specific to citrusperl , which makes an .exe for it ... citrusperl\apps\scripts\relocateperl.xpl and citrusperl\apps\scripts\citrusutils.xpl
You can find "reloc_perl.bat" from ActiveState at Changing Perl Config settings, How to move a windows perl installation??, reloc_perl - copy a perl installation to a new location, ActiveState::RelocateTree - copy tree substituting paths at the same time
Strawberry installer/relocator portion is this parts
Basically update Config_heavy.pl and fixup paths in pl2bat-ed files
CitrusPerl is a perl distribution maker/distributor, make your own CitrusSzabgabPerl :)