Platform-independent path manipulation using File::Spec