Hi,
While this is a neat idea, I think Perl 6 has a better return value of ineq ops. They will return something that is a boolean, but also retains the value from one of the operands (I think it is the right). This will allow you to do wonderful things like:
3 <= $x <= 5While reading this, however, I wonder what would be the best way to locate the divergence point in a pair of strings. Here is what I came up with off the top of my head. I guess it would be more efficient to use substr to iterate over and compare each character, but I am too lazy for that.
#!perl -l sub firstdivergence { my $diff = $_[0] ^ $_[1]; $diff =~ /[^\x00]/g; pos $diff - 1 } sub lastdivergence { my $diff = $_[0] ^ $_[1]; $diff =~ /[^\x00]\x00*$/g; pos $diff - 1 } print firstdivergence 'axcd', 'abced'; # prints 1 print lastdivergence 'axcd', 'abced'; # prints 4
Ted Young
($$<<$$=>$$<=>$$<=$$>>$$) always returns 1. :-)In reply to Re: Should string inequality operators return the point the of divergance?
by TedYoung
in thread Should string inequality operators return the point the of divergance?
by demerphq
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |