Tisk v unicode

Ondrej Koala Vacha koala na vju.cz
Pátek Květen 21 22:36:10 MEST 2004


On Fri, 21 May 2004, Ondrej Koala Vacha wrote:

> On Thu, 20 May 2004, Ondrej Koala Vacha wrote:
>
> > On Tue, 18 May 2004, Honza Pazdziora wrote:
> >
> > > On Mon, May 10, 2004 at 12:26:06PM +0200, Ondrej Koala Vacha wrote:
> > > > On Mon, 10 May 2004, Ondrej Koala Vacha wrote:
> > > >
> > > > > S natvrdo pridanym
> > > > > use encoding 'latin2';
> > > > > 	use open ":std",
> > > > > 	IN => ":encoding(iso-8859-2)",
> > > > > 	OUT => ":encoding(iso-8859-2)";
> > > > >
> > > >
>
>
> Mam dojem, ze unicode zhadam neni konce :(
>

Tak abych si jen nestezoval. Rozdil mezi STDOUT a STDERR sice je, ac by
asi nemel byt (nevim, rad se to dozvim), ale ten perl panic se da
odstranit *nezavolanim* binmode(STDOUT,...) v open.pm. Tady je patch:

---------------------------------------------------------------------
--- /usr/lib/perl5/5.8.0/open.pm        2003-03-13 23:33:24.000000000 +0100
+++ open.pm     2004-05-21 22:26:33.000000000 +0200
@@ -130,7 +130,6 @@
                binmode(STDOUT,  ":utf8");
                binmode(STDERR,  ":utf8");
            } elsif ($out =~ /(\w+\(.+\))/) {
-               binmode(STDOUT,  ":$1");
                binmode(STDERR,  ":$1");
            }
        }
---------------------------------------------------------------------


Pravdepodobne to je toliko obejiti, nikoliv reseni problemu.

Cely fungujici priklad tedy je:

--------------------------------------
#!/usr/local/bin/perl -w
use encoding 'latin2';

use open ":std",
        IN => ":encoding(iso-8859-2)",
        OUT => ":encoding(iso-8859-2)";

my $a="ježeček";
print "main STDOUT $a\n";
print STDERR "main STDERR $a\n";
--------------------------------------
main STDOUT ježeček
main STDERR ježeček


;)


s pranim hezkeho vikendu
--
Ondrej Koala Vacha


Další informace o konferenci Perl