${^FS_ENCODING}{foo} = 'A'; ${^FS_ENCODING}{foo}{bar} = 'B'; ${^FS_ENCODING}{foo}{bar}{baz}{quux} = 'auto'; open my $fh, ">", "/foo/bar/baz/quux/blah/hello.txt"; #### open my $fh, ">", join("/", "" encode(detect_encoding("/"), "foo"), encode("A", "bar"), encode("B", "baz"), encode("B", "quux"), encode(detect_encoding("/foo/bar/baz/quux"), "blah"), encode(detect_encoding("/foo/bar/baz/quux/blah"), "hello.txt"), );