Perl Monk, Perl Meditation PerlMonks

### Re: Comparison by position and value

by holli (Abbot)
 on Jan 02, 2005 at 19:56 UTC ( #418809=note: print w/replies, xml ) Need Help??

in reply to Comparison by position and value

that was too tough for me, so i asked a friend of mine (who is a real perl wizard but not very talkative). my own solution was hash-based too. he gave me this:
```use strict;
use warnings;

print &compatible ("_8__3__19", "48____7__"); #c
print &compatible ("_8__3__19", "4_8___7__"); #i
print &compatible ("_8__3__19", "48_____7_"); #i

sub compatible
{
my @s=(\$_[0], \$_[1]);

my @d;

for( 0,1 )
{
for( \$d[\$_]=\$s[\$_] )
{
tr/0-9/\0/c;  #assuming the placeholder is not \0
tr/\0/\377/c;
}
}

my \$m="\$d[0]" & "\$d[1]";

for( 0,1 )
{
\$d[\$_] = "\$m" & "\$s[\$_]";
}

my \$compatible;
if( \$compatible = \$d[0] eq \$d[1] )
{
for( 0,1 )
{
\$d[\$_] = {};
\${\$d[\$_]}{\$1} .= "\$-[0] " while \$s[\$_] =~ /(\d)/g;
}

\$compatible &= !grep\$d[1]->{\$_} && \$d[1]->{\$_} ne \$d[0]->{\$_},
+keys %{\$d[0]};
}

return \$compatible ? 1 : 0;;
}
i canīt say i understand it fully but normally you can rely on ozo

Create A New User
Node Status?
node history
Node Type: note [id://418809]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (3)
As of 2020-10-31 20:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
My favourite web site is:

Results (291 votes). Check out past polls.

Notices?