Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much

Re^2: Creating (and using) a custom encoding. (SOLUTION)

by graff (Chancellor)
on Jun 01, 2013 at 02:38 UTC ( #1036371=note: print w/replies, xml ) Need Help??

in reply to Re: Creating (and using) a custom encoding. (SOLUTION)
in thread Creating (and using) a custom encoding.

In case you haven't gotten all the way yet with enc2xs, the only "hard" part is to build the appropriate "Unicode Character Map" (ucm) file to describe the relationship between Unicode and your specialized character encoding.

In case it helps, you might want to look at Encode::Buckwalter, which includes a ucm file to define a specialized ASCII "alphabet" for transliterating Arabic characters. It's fairly simple, except that some character relations only work in one direction (e.g. when going from Unicode to "Buckwalter Transliteration", U+0030 and U+0660 will both map to ASCII "0", but when going from transliteration to Unicode, ASCII "0" will only map to U+0030, and likewise for other digits).

  • Comment on Re^2: Creating (and using) a custom encoding. (SOLUTION)

Replies are listed 'Best First'.
Re^3: Creating (and using) a custom encoding. (SOLUTION)
by davido (Archbishop) on Jun 01, 2013 at 04:03 UTC

    Thanks. I appreciate the links.

    What first motivated this investigation was a quest for alternatives to automatically apply fold case (fc) to an incoming file. I'm well aware that this is a road less traveled. Certainly it violates "the principle of least surprise", and as such I wouldn't consider it for production code. But it's been an interesting investigation so far. :)


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1036371]
[Eily]: you could tie a variable into not having the same value each time, if you like to make people who try to debug your code facepalm
[Corion]: perl -wle 'package o; use overload q("") => sub {warn "str"; ""}, bool => sub{warn "bool"; 1}; package main; my $o={}; bless $o => o; print "Yay" if ($o && !length($o))'
[Corion]: But people writing such code should document the objects they construct and why it makes sense for an object to be invisible as string while being true in a boolean context
[hippo]: That's equal parts clever and horrendous.
[Eily]: the overload version wouldn't return true with "$x" && !length $x though, I guess
[hippo]: The more I look at this code, the more $x is a plain old scalar and the more this condition will never be true. I'm calling it a bug at this point.
[hippo]: Thanks for your input which has soothed my sanity (a little)
[Corion]: Eily: Sure - if you force both things into stringy things, then you break that magic. But that would also mean that you changed the expression, as now $x = 0.00 will be true instead of false as it were before
[Corion]: Ah no, at least in my feeble experiments that doesn't change the meaning
[Corion]: We sell sanity in small packages ;)

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (9)
As of 2017-07-27 13:40 GMT
Find Nodes?
    Voting Booth?
    I came, I saw, I ...

    Results (413 votes). Check out past polls.