The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


Encode::compat - emulation layer


This document describes version 0.07 of Encode::compat, released June 3, 2004.


    use Encode::compat; # a no-op for Perl v5.7.1+
    use Encode qw(...); # all constants and imports works transparently

    # use Encode functions as normal


WARNING: THIS IS A PROOF-OF-CONCEPT. Most functions are incomplete. All implementation details are subject to change!

This module provide a compatibility layer for users on perl versions earlier than v5.7.1. It translates whatever call it receives into Text::Iconv, or (in the future) Unicode::MapUTF8 to perform the actual work.

The is_utf8(), _utf8_on() and _utf8_off() calls are performed by the method native to the perl version -- 5.6.1 would use pack/unpack, 5.6.0 uses tr//CU, etc.

Theoretically, it could be backported to 5.005 and earlier, with none of the unicode-related semantics available, and serves only as a abstraction layer above Text::Iconv, Unicode::MapUTF8 and possibly other transcoding modules.


Currently, this module only support 5.6.1+, and merely provides the three utility function above (encode(), decode() and from_to()), with a very kludgy FB_HTMLCREF fallback against latin-1 in from_to().


Encode, perlunicode


Autrijus Tang <>


Copyright 2002, 2003, 2004 by Autrijus Tang <>.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.