note
PhiRatE
Good implementation, I consider it the best of those posted because it explicitly matches only those conditions that were given in the example as you say, as opposed to some of the others which match considerably more. With poker, you don't really want to screw up :)
<p>
I offer a slight modification:
<p>
<code>
if (join('','a'..'m') =~ qr/$sv/ && $sv =~/^[a-m]{5}$/){
print "Matched\n";
}
</code>
<p>
Which just means you don't need to specify the whole of the range, just the start and end, you could sub it like this:
<p>
<code>
sub match_range {
my ($string, $start, $end, $length) = @_;
if (join('',$start .. $end) !~ qr/$string/) { return 0; }
if ($string !~ /^[${start}-${end}]{$length}$/) { return 0; }
return 1;
}
</code>
198468
198634