> 
> From: Norman Gaywood <[EMAIL PROTECTED]>
> 
> But I could not find any input that gave the split loop error message.
> The error message is mentioned in man perldiag but it just points you
> to the perldoc -f split page. And as you said, this says nothing about
> this error.
> 
> Could you provide an input line that creates the problem?
> 
If you have to try hard to get the problem to happen then
it isn't going to happen. Here's a shell transcript pasted
straight off an xterm. I've now tried 4 machines, all installed
straight off RedHat 8.0 and they all do it.

[EMAIL PROTECTED] telford]$ 
[EMAIL PROTECTED] telford]$ cat >test <<EOF
> #!/usr/bin/perl
> 
> while(<>)
> {
>         @x1 = split(/[\t\n ]+/, \$_);
> print \$., " ", scalar @x1, ": ";
>         foreach \$token (@x1)
>         {
>                 @x2 = split(/[,;]/, \$token);
> print scalar @x2;
>         }
> print "\n";
> }
> EOF
[EMAIL PROTECTED] telford]$ chmod +x test
[EMAIL PROTECTED] telford]$ ./test 
sdfsdf
Split loop at ./test line 9, <> line 1.
[EMAIL PROTECTED] telford]$ 
[EMAIL PROTECTED] telford]$ ./test /etc/resolv.conf 
Split loop at ./test line 9, <> line 1.
[EMAIL PROTECTED] telford]$ ./test /etc/hosts
Split loop at ./test line 9, <> line 1.
[EMAIL PROTECTED] telford]$ ./test /usr/share/doc/glibc-2.2.93/COPYING
Split loop at ./test line 9, <> line 1.
[EMAIL PROTECTED] telford]$ 
[EMAIL PROTECTED] telford]$ /usr/bin/perl -v
This is perl, v5.8.0 built for i386-linux-thread-multi

Copyright 1987-2002, Larry Wall

Perl may be copied only under the terms of either the Artistic License
or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using `man perl' or `perldoc perl'.  If you have access to
the
Internet, point your browser at http://www.perl.com/, the Perl Home
Page.

[EMAIL PROTECTED] telford]$ rpm -q perl
perl-5.8.0-55
[EMAIL PROTECTED] telford]$ 


The addition of "use bytes;" does fix things but unfortunately renders
my perl script incompatible with RedHat 6.2 and I don't understand why
this should relate to foreign languages... following this idea I also
tried changing the locale with encouraging results.

[EMAIL PROTECTED] telford]$ 
[EMAIL PROTECTED] telford]$ echo $LANG
en_AU.UTF-8
[EMAIL PROTECTED] telford]$ ./test
sdkfjshdf
Split loop at ./test line 9, <> line 1.
[EMAIL PROTECTED] telford]$ LANG=
[EMAIL PROTECTED] telford]$ ./test
ssdkfjsdhfe
1 1: 1
sdfsd
2 1: 1
[EMAIL PROTECTED] telford]$ LANG=en_AU.UTF-8
[EMAIL PROTECTED] telford]$ ./test
sdfsdfhkwe
Split loop at ./test line 9, <> line 1.
[EMAIL PROTECTED] telford]$ LANG=en_AU
[EMAIL PROTECTED] telford]$ ./test
wqekrjwer
1 1: 1
sdfd
2 1: 1
[EMAIL PROTECTED] telford]$ 


My default LANG setting is "en_AU.UTF-8" by the way.

So something to do with utf8 is breaking things... I still don't
understand why because all the input characters are low ASCII and should
be perfectly compatible between utf8 and ASCII. Unfortunately the
default RedHat install will choose en_AU.utf8 instead of en_AU as the
standard language for Australia but now that I know what I'm doing at
least I know how to fix things for myself.

        - Tel




-- 
Psyche-list mailing list
[EMAIL PROTECTED]
https://listman.redhat.com/mailman/listinfo/psyche-list

Reply via email to