Hi,

ah! That makes perfect sense, thanks for clarifying matters! :)

Ok, then it seems we need to have a builtin, such that:
  new_builtin(0xE2) ~ new_builtin(0x82) ~ new_builtin(0xAC) eq
  "\xE2\x82\xAC"

I think - conceptually - it cannot be done, because you cannot store a byte in a character string, and ~ is for concatenating character strings, not byte strings. In fact, you can do it, because Pugs' (and as I know Parrot's) internal string representation is UTF-8 (but what about other compiler destinations, like machine code, JVM, .Net?), and you can put bytes into it. But I think it would be a bad decision to do so, because what if in the future you would like to change this behaviour? The system should be totally transparent and virtual, and it sounds like a hack for me.


I think it should be done in CGI.pm.

Bye,
  Andras

Reply via email to