use Path::Class qw( file ); print( file('A:\\B.CD(E)~!@#$%^&\\E\\F.txt') ->relative('A:\\B.CD(E)~!@#$%^&'), "\n" );