kzwix has asked for the wisdom of the Perl Monks concerning the following question:

Greetings, O wise ones.

I would like to get a list of all the available encodings installed on my machine. The Encode documentation (on the Perl website) clearly states:

To get a list of all available encodings including those that have not yet been loaded, say:

    @all_encodings = Encode->encodings(":all");

Now, executing this command and displaying the list contents, one result per row, gives me the following result:

ascii
ascii-ctrl
iso-8859-1
null
utf-8-strict
utf8

However, when I type, in the very same program:

my $canon = resolve_alias('Latin-9');
print $canon ? "Found Alias for: $canon\n" : "Unknown\n";

I get the result:

Found Alias for: ISO-8859-15

Now, this leaves me puzzled: The canonical name clearly wasn't stated in the list which was supposed to give me all available encodings... I have the same problem with other encodings, too.

Would you know what I do wrong ?

  • Comment on Encode - List ALL available encodings [SOLVED]

Replies are listed 'Best First'.
Re: Encode - List ALL available encodings (upgrade)
by Anonymous Monk on Sep 23, 2014 at 08:22 UTC
    upgrade your version of Encode ... dump your %INC to see which version of %Encode is loaded

      Thanks for your reply. I've found the cause of the difference.

      I was running:

      my @encList = Encode::encodings(':all');

      Your (much better) version:

      my @encList = Encode->encodings(':all');

      I hadn't noticed that I had to use a method, and not a simple module sub. Thanks, and may your camel never croak