Now I know I'm not the only one with problems with Cwd.
While it certainly should be built into perl.dll (speaking of Win32), it is not, and some non-trivial usages of Cwd from Perl built into C makes my program even segfault.
I therefore trade portability and use Win32::GetCwd which in turn built into perl.dll
Also, during its execution it constantly checks for $^O, suspecting my script to start on Win32 and then continue working on VMS.
FWIW Cwd is a perfect example of poorly designed module, however visually it looks sane but implemented insane, yet its task is trivial.