use strict; use warnings; use Unicode::Collate; my $Collator = Unicode::Collate->new(); my $Print = ""; my $something = ""; ## Initialize if ( $Collator->eq( $something, "" ) ) { $Print .= "\$something eq \"\"\n"; } else { $Print .= "\$something ne \"\"\n"; } for my $no ( 0 .. 255 ) { my ( $lt, $eq, $gt ); if ( $no == 0 ) { $lt = chr($no); if ( ! ( $Collator->lt( "", $lt ) ) ) { $Print .= "0: \"\" not lt \\0\n"; } if ( $Collator->eq( "", $lt ) ) { $Print .= "0: \"\" eq \\0\n"; } if ( $Collator->gt( "", $lt ) ) { $Print .= "0: \"\" gt \\0\n"; } } elsif ( $no == 255 ) { $lt = chr($no-1); $eq = chr($no); if ( ! ( $Collator->lt( $lt, $eq ) ) ) { $Print .= "255 not lt $eq\n"; } if ( $Collator->ne( chr($no), $eq ) ) { $Print .= "255 not eq $eq\n"; } } else { $lt = chr($no-1); $eq = chr($no); $gt = chr($no+1); if ( ! ( $Collator->lt( $lt, $eq ) ) ) { $Print .= ord($lt)." not lt ".ord($eq)."\n"; } if ( $Collator->ne(chr($no), $eq ) ) { $Print .= "$no not eq ".ord($eq)."\n"; } if ( ! ( $Collator->gt( $gt, $eq ) ) ) { $Print .= ord($gt)." not gt ".ord($eq)."\n"; } } } $Print .= "\nGreat!!!\n\n"; print $Print; exit;