http://www.perlmonks.org?node_id=504319


in reply to get UTF-8 character codes

Try running perl -i.bak -pe '42'.

The implicit loop of -p reads from the same place <> does -- which is ARGV, not STDIN.

</spolier>


Warning: Unless otherwise stated, code is untested. Do not use without understanding. Code is posted in the hopes it is useful, but without warranty. All copyrights are relinquished into the public domain unless otherwise stated. I am not an angel. I am capable of error, and err on a fairly regular basis. If I made a mistake, please let me know (such as by replying to this node).

Replies are listed 'Best First'.
Re^2: get UTF-8 character codes
by Skeeve (Parson) on Oct 31, 2005 at 19:09 UTC

    What I understand now is that binmode STDOUT STDIN doesn't help.

    What I still don't get is: What does help.

    I'm still lost...

    Update: Thanks to Errto for correcting me. OTOH: I did that, replacing STDIN by ARGV. It didn't help.

    But it seems, my expectations were wrong. My first Update above seemed to have worked. I'm still investigating...


    s$$([},&%#}/&/]+}%&{})*;#$&&s&&$^X.($'^"%]=\&(|?*{%
    +.+=%;.#_}\&"^"-+%*).}%:##%}={~=~:.")&e&&s""`$''`"e
      It's STDIN that's causing the problem, not STDOUT. You need to be working on ARGV instead instead of STDIN. Or, an easier way of dealing with it is, especially since this is a one-liner anyway, just add the following before -e:
      -Mopen=:utf8,:std
      See open for more.