Sadly, File::Spec::Unix::catdir('foo','bar') returns "foo/bar" not "foo/bar/". You might consider filing a bug against that. I have no idea if those who would be notified of such a bug report would have any sympathy toward our point of view on that, however.
It's documented, so not a bug:
catdir - Concatenate two or more directory names to form a complete path ending with a directory. But remove the trailing slash from the resulting string, because it doesn't look good, isn't necessary and confuses OS/2. Of course, if this is the root directory, don't cut off the trailing slash :-)