http://www.perlmonks.org?node_id=866330

Krambambuli has asked for the wisdom of the Perl Monks concerning the following question:

The following code
#!/usr/bin/perl use strict; use warnings; my $s1 = 'aaa2000@yahoo.com'; my $s2 = 'aaa_2000@yahoo.com'; my $s3 = 'aaa2000'; my $s4 = 'aaa_2000'; no locale; print "\nNO Locale:\n\n"; if ($s1 gt $s2) {print "$s1 is > $s2\n";} if ($s1 lt $s2) {print "$s1 is < $s2\n";} if ($s1 eq $s2) {print "$s1 is = $s2\n";} if ($s3 gt $s4) {print "$s3 is > $s4\n";} if ($s3 lt $s4) {print "$s3 is < $s4\n";} if ($s3 eq $s4) {print "$s3 is = $s4\n";} use locale; print "\nWith 'use locale;':\n\n"; if ($s1 gt $s2) {print "$s1 is > $s2\n";} if ($s1 lt $s2) {print "$s1 is < $s2\n";} if ($s1 eq $s2) {print "$s1 is = $s2\n";} if ($s3 gt $s4) {print "$s3 is > $s4\n";} if ($s3 lt $s4) {print "$s3 is < $s4\n";} if ($s3 eq $s4) {print "$s3 is = $s4\n";}
prints out

NO Locale:

aaa2000@yahoo.com is < aaa_2000@yahoo.com
aaa2000 is < aaa_2000

With 'use locale;':

aaa2000@yahoo.com is > aaa_2000@yahoo.com
aaa2000 is < aaa_2000
which I cannot really follow. Am I missing something more or less obvious, or is this a bug? Can others confirm to see the same behavior ?

I see this both on a 5.8.8 Perl as on a 5.10.1 Perl.

Many thanks in advance,

Krambambuli
---