This should work.

$_=$x^$y;$n=s/\0//g||undef

Terje

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, April 21, 2004 2:02 AM
> To: [EMAIL PROTECTED]
> Cc: [EMAIL PROTECTED]
> Subject: Re: mini-golf: first differing position
> 
> 
> 
> 
>    X-Original-To: [EMAIL PROTECTED]
>    Mailing-List: contact [EMAIL PROTECTED]; run by ezmlm
>    X-Spam-Status: No, hits=0.3 required=7.0
>          tests=NO_REAL_NAME
>    X-Spam-Check-By: la.mx.develooper.com
>    Date: Tue, 20 Apr 2004 19:57:27 -0400 (EDT)
>    From: <[EMAIL PROTECTED]>
> 
> 
> 
> 
>    We want to find out the first position $n at which strings $x and $y
>    differ.  If $x eq $y, then $n is undef.  If $x ne $y but $x is a
>    prefix (aka initial segment) of $y, then $n should be equal to length
>    $x.  The operation must preserve both $x and $y (i.e. destructive
>    operations are disallowed).
> 
>    By way of baseline, here's an utterly uninspired solution:
> 
>    $n=0;while(($c=substr($x,$n,1)||undef $n) && $c eq 
> substr($y,$n++,1)){;}
> 
> It's worse than uninspired, actually.  It's wrong.
> 
> kj

Reply via email to