Well, I thought it was rather amusing; but then, the hon. Usenaut
could perhaps be advised to pay more attention to Usenet posting
conventions, and to entrust unknown terminology to a search engine of
their choice before revealing ignorance of the history of computers in
public... [An aside on the topic of character coding and old
computers:
http://www.mailcom.com/besm6/ shows what can happen when
people try to put two different character codings into the same web
page - Mozilla decided it must be Chinese, with unfortunate
results...] [OK, so BESM-6 was a youngster compared to ENIAC]
I suspect you're trying to print Unicode
characters to a filehandle that isn't expecting them.
OK, let's get serious.
There is a Perl document (perldiag) which lists the error messages
issued by perl itself. For 5.8.0 this document could be perused at
http://www.perldoc.com/perl5.8.0/pod/perldiag.html ,
although it's also part of any complete Perl installation.
This should be the _first_ recourse for any unrecognised message.
And indeed, here is the offending item:
Wide character in %s
(W utf8) Perl met a wide character (>255) when it wasn't expecting
one. This warning is by default on for I/O (like print) but can be
turned off by no warnings 'utf8';. You are supposed to explicitly
mark the filehandle with an encoding, see open and perlfunc/binmode.
Seems to me that they key phrase here is "You are supposed to...".
You should be able to fix the problem by adding
binmode(FILEHANDLE, ":utf8");
Do you think so? That tells Perl that the filehandle *is* expecting
utf-8 encoding, but if it isn't in fact expecting it, then it's
likely to cause an even worse problem.
If the hon. Usenaut is expecting a particular character coding on
their output, I would recommend (in 5.8.0) defining that coding in
an encoding layer, to give Perl the chance to convert between "Wide
characters" internally, and the expected encoding externally.
Without some context, I've no idea whether the material in question
might want to be koi8-r (the traditional encoding for Russian
Cyrillic), or nothing more exciting than Windows-1252; but either way,
an :encoding layer is what I'd recommend.
The relevant documentation page that's called out from the binmode()
page is:
http://www.perldoc.com/perl5.8.0/lib/open.html
(In earlier Perl versions, one needs to call the encoding explicitly,
instead of including it in the open/binmode calls).
If that doesn't work, you should be able to turn off the warning.
But again: the warning is there for a reason. Just hiding the warning
doesn't make that reason go away. I would recommend identifying and
then solving the problem, not just hiding it.
You then added, almost it seems as an afterthought:
Oh, right: but I'd suggest putting that up-front, IMNSHO it's the
single most important part of this reply.
cheers