lev.pl 403 B

123456789101112131415161718192021
  1. use List::Util 'min';
  2. sub leven {
  3. my ($s, $t) = @_;
  4. return length($t) if $s eq '';
  5. return length($s) if $t eq '';
  6. my ($s1, $t1) = (substr($s, 1), substr($t, 1));
  7. (substr($s, 0, 1) eq substr($t, 0, 1))
  8. ? leven($s1, $t1)
  9. : 1 + min(
  10. leven($s1, $t1),
  11. leven($s, $t1),
  12. leven($s1, $t)
  13. );
  14. }
  15. print leven($ARGV[0], $ARGV[1]), "\n";