Code Comments
Programming Forum and web based access to our favorite programming groups.Why when I run this one-liner:
perl -e 'print "\x{2660}\n"'
do I see this:
Wide character in print at -e line 1.
I'm assuming that's a warning, since I still get the expected output,
but why am I getting it, when I didn't ask for them?
Is there a better way to drop in a unicode character?
Semi-related question: Is there a good document I could read somewhere
on the differences for one-liners in Windows?
Thanks.
James
Post Follow-up to this messageOn 3/25/2004 5:42 PM, James Edward Gray II wrote:
> Why when I run this one-liner:
>
> perl -e 'print "\x{2660}\n"'
>
> do I see this:
>
> Wide character in print at -e line 1.
>
> I'm assuming that's a warning, since I still get the expected output,
> but why am I getting it, when I didn't ask for them?
>
> Is there a better way to drop in a unicode character?
>
> Semi-related question: Is there a good document I could read somewhere
> on the differences for one-liners in Windows?
Hi James,
I'm not really up on unicode, but you might find something in 'perldoc
perluniintro' & 'perldoc perlunicode'.
The only information that I know of about running perl at the
commandline is in 'perldoc perlrun'. Although, I have a vague
recollection of seeing an article with hints and tips for one-liners
somewhere. Maybe a google search will find something.
Regards,
Randy.
Post Follow-up to this messageJames Edward Gray II wrote:
> Why when I run this one-liner:
>
> perl -e 'print "\x{2660}\n"'
>
> do I see this:
>
> Wide character in print at -e line 1.
>
> I'm assuming that's a warning, since I still get the expected output,
> but why am I getting it, when I didn't ask for them?
>
different version seems to behave differently. my v5.6.0 never warn me about
it. my v5.8.2 does emit a warning. you can turn it off by saying:
[panda]# perl -mbytes=no -e 'print "\x{2660}\n"'
there is a long discussion about what Perl should do when it encounters a
byte sequence which is different than the current C local. should it
upgrade to UTF-8 silently? should it warn? if the current C local is not
UTF-8 then what? you can check the p5p list for the discussion.
david
--
s$s*$+/<tgmecJ"ntgR"tgjvqpC"vuwL$;$;=qq$
\x24\x5f\x3d\x72\x65\x76\x65\x72\x73\x65
\x24\x5f\x3b\x73\x2f\x2e\x2f\x63\x68\x72
\x28\x6f\x72\x64\x28\x24\x26\x29\x2d\x32
\x29\x2f\x67\x65\x3b\x70\x72\x69\x6e\x74
\x22\x24\x5f\x5c\x6e\x22\x3b\x3b$;eval$;
Post Follow-up to this messageJames Edward Gray II wrote:
> Why when I run this one-liner:
>
> perl -e 'print "\x{2660}\n"'
>
> do I see this:
>
> Wide character in print at -e line 1.
Makes sense. 2660 would overflow a one-byte character.
>
>
> I'm assuming that's a warning, since I still get the expected output,
> but why am I getting it, when I didn't ask for them?
>
> Is there a better way to drop in a unicode character?
I think you need to warn the compiler ahead of time that you are reading or
writig unicode. It adapts anyway, but it's just reminding you. You might s
ee
if you can make sense out of
perldoc encoding
perldoc perlunicode
though they are both rather windy and circuituous.
Joseph
Post Follow-up to this messageOn Mar 25, 2004, at 6:54 PM, Randy W. Sims wrote: > On 3/25/2004 5:42 PM, James Edward Gray II wrote: > > Hi James, > > I'm not really up on unicode, but you might find something in 'perldoc > perluniintro' & 'perldoc perlunicode'. Thank you, these Documents are great, especially the first one. If anyone is interested, you silence the warning by setting STDOUT to Utf-8 output with: binmode STDOUT, ":utf8"; James
Post Follow-up to this message
Show a Printable Version
Email This Page to Someone!
Receive updates to this thread
Powered by vBulletin
Copyright 2000-2006 Jelsoft Enterprises Limited.