in reply to Re: If there a way to find the location of the first difference between two strings?
in thread If there a way to find the location of the first difference between two strings?
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
|
|---|