I still needed to know how they compare (lt eq gt), so I did the following:
srand( 711 ); . . . sub case2 { my $s1 = 'a' x 39 . 'b'; my $s2 = 'a' x 39 . chr( 98 + rand(4)); my ( $cmp, $loc ) = Cmp_and_Loc ( $s1, $s2 ); } sub Cmp_and_Loc { my ( $s1, $s2, undef ) = @_; my $t = 0; my $cmp = $s1 cmp $s2; if ( $cmp ) { $t = $s1 ^ $s2; $t =~ /^\0*)/; $t = $+[0]; } return ( $cmp, $t ); }
This appeared to work since if the strings are equal the sub returns 0,0. I will test your variation, but it still flies compared to anything I tried. Using the rand(4), I think I was able to test all combinations.
As always, when someone shows you how to do it correctly, it becomes easy :-)
Thank you
"Well done is better than well said." - Benjamin Franklin
In reply to Re^2: If there a way to find the location of the first difference between two strings?
by flexvault
in thread If there a way to find the location of the first difference between two strings?
by flexvault
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |