in reply to $stat=qx## under utf8::all

Get rid of use utf8::all; it breaks your program :p

or Encode::encode the string properly before you qx{} it

see perlunitut: Unicode in Perl#I/O flow (the actual 5 minute tutorial)

Also, qx## while legal is very irritating to me because # is for comments :P Maybe next time you can pick qx\\ because that is legal too

$ perl -MO=Deparse -E " say qx\echo it\ use feature 'current_sub', 'evalbytes', 'fc', 'say', 'state', 'switch' +, 'unicode_strings', 'unicode_eval'; say `echo it`; -e syntax OK

Replies are listed 'Best First'.
Re^2: $stat=qx## under utf8::all
by Anonymous Monk on Oct 27, 2013 at 10:09 UTC
    1. Thank you for answer! 2. I can not get rid of the pragma, i want to make my program working according to nowadays requirements. 3. I can not encode my "string properly" as there is nothing more to encode than what has being done already. 4. qx## is alright to me, pardon. 5. I did cast a glance at the links you've provided: seems to me you did not read my question carefuly. Next time, if would like to help, please consider the fact it takes some time, not just typing effort.

      2. I can not get rid of the pragma, i want to make my program working according to nowadays requirements.

      Its a lexical pragama, turn it off where it breaks your program :)

      3. I can not encode my "string properly" as there is nothing more to encode than what has being done already.

      The program you're talking to doesn't like the bytes you're giving it -- purportedly utf8 -- give the program what it wants, not everything understands utf8

      Also, don't assume utf8::all did everything correctly, trust but verify, so verify -- I don't see any mention of locale in utf8::all

      5. I did cast a glance at the links you've provided: seems to me you did not read my question carefuly. Next time, if would like to help, please consider the fact it takes some time, not just typing effort.

      Cute, but maybe you'd like to do more than glance? qx{} deals in bytes -- if the bytes being sent aren't working, qx{} isn't to blame