Actually, the documentation you are refering to, does not apply to the example which you had provided, because in the precondition, it says If any component is an absolute path ..., and your example had only relative pathes.

I'm not aware of any (standard- or CPAN-)module which would offer the desired functionality. The "usual" routines for manipulating pathes in a system-independend way are in File::Spec::Functions (but I guess you've seen them already?), so I think you have to implement them by yourself.