Test::Differences provides UNIX-like diff output when strings are not matching.

examples/perl/t/test_differences.t
use strict;
use warnings;

use Test::More tests => 1;
use Test::Differences;

my @expected = (
    'This is a string',
    'Another string',
);

my @actual = @expected;
$actual[0] .= 'x';

eq_or_diff \@actual, @expected;

perl examples/perl/t/test_differences.t

1..1
not ok 1 - Another string
#   Failed test 'Another string'
#   at examples/perl/t/test_differences.t line 15.
# +----+---------------------+----+--------------------+
# | Elt|Got                  | Elt|Expected            |
# +----+---------------------+----+--------------------+
# *   0|'This is a stringx'  *   0|'This is a string'  *
# *   1|'Another string'     *    |                    |
# +----+---------------------+----+--------------------+
# Looks like you failed 1 test of 1.