Separating expected and actual values makes failures easier to read.

Expected and Actual

expected_actual.pl
use strict;
use warnings;

sub add_two {
    my ($value) = @_;
    return $value + 2;
}

my $input = ;
my $expected = 6;
my $actual = add_two($input);
my $status = $actual == $expected ? "pass" : "fail";

print "input=$input\n";
print "expected=$expected\n";
print "actual=$actual\n";
print "status=$status\n";
use strict;
use warnings;

sub add_two {
    my ($value) = @_;
    return $value + 2;
}

my $input = ;
my $expected = 6;
my $actual = add_two($input);
my $status = $actual == $expected ? "pass" : "fail";

print "input=$input\n";
print "expected=$expected\n";
print "actual=$actual\n";
print "status=$status\n";
use strict;
use warnings;

sub add_two {
    my ($value) = @_;
    return $value + 2;
}

my $input = ;
my $expected = 6;
my $actual = add_two($input);
my $status = $actual == $expected ? "pass" : "fail";

print "input=$input\n";
print "expected=$expected\n";
print "actual=$actual\n";
print "status=$status\n";
expected value The expected value is what the test says should happen.