Text::Levenshtein is returning in list context, but scalar context is what should be happening. You could force scalar
context by using
scalar.
For example:
#!/usr/bin/perl -l
use autodie;
use strictures 1;
use Devel::SimpleTrace;
use strict qw/refs/;
use Text::LevenshteinXS qw/distance/;
my $x = scalar distance("history", "history");
my $y = scalar distance("gistory", "history");
my $z = scalar distance("history", "hustory");
print $x, "\n", $y, "\n", $z;
use strict qw/refs/;
use Text::Levenshtein::Damerau qw/edistance/;
$x = scalar edistance("history", "history");
$y = scalar edistance("gistory", "history");
$z = scalar edistance("history", "hustory");
print $x, "\n", $y, "\n", $z;
use strict qw/refs/;
use Text::Levenshtein;
$x = scalar distance("history", "history");
$y = scalar distance("gistory", "history");
$z = scalar distance("history", "hustory");
print $x, "\n", $y, "\n", $z;