An is-style check compares an actual scalar value to an expected scalar value.

is-comparisons Expected and actual values make a failed comparison easier to diagnose than a bare boolean check.

Is Comparisons

name
is_comparisons.pl
Replay: real traced execution (multi-file project)
use strict;
use warnings;

my $name = "Ada";
my $expected = "Ada";
my $passed = $name eq $expected;
my $summary = $passed ? "same" : "different";

print "name=$name\n";
print "expected=$expected\n";
print "passed=$passed\n";
print "summary=$summary\n";
use strict;
use warnings;

my $name = "Ada Lovelace";
my $expected = "Ada";
my $passed = $name eq $expected;
my $summary = $passed ? "same" : "different";

print "name=$name\n";
print "expected=$expected\n";
print "passed=$passed\n";
print "summary=$summary\n";
use strict;
use warnings;

my $name = "";
my $expected = "Ada";
my $passed = $name eq $expected;
my $summary = $passed ? "same" : "different";

print "name=$name\n";
print "expected=$expected\n";
print "passed=$passed\n";
print "summary=$summary\n";
  1. $name ← Ada, $expected ← Ada, $passed ← 1, $summary ← same

    4my $name→ Ada = "Ada"; #@name="Ada Lovelace", ""5my $expected→ Ada = "Ada";6my $passed→ 1 = $nameAda eq $expectedAda;7my $summary→ same = $passed1 ? "same" : "different";89print "name=$nameAda\n";10print "expected=$expectedAda\n";11print "passed=$passed1\n";12print "summary=$summarysame\n";
    outputname=Ada
    expected=Ada
    passed=1
    summary=same
  1. $name ← Ada Lovelace, $expected ← Ada, $passed ← (empty), $summary ← different

    4my $name→ Ada Lovelace = "Ada Lovelace";5my $expected→ Ada = "Ada";6my $passed→ (empty) = $nameAda Lovelace eq $expectedAda;7my $summary→ different = $passed(empty) ? "same" : "different";89print "name=$nameAda Lovelace\n";10print "expected=$expectedAda\n";11print "passed=$passed(empty)\n";12print "summary=$summarydifferent\n";
    outputname=Ada Lovelace
    expected=Ada
    passed=
    summary=different
  1. $name ← (empty), $expected ← Ada, $passed ← (empty), $summary ← different

    4my $name→ (empty) = "";5my $expected→ Ada = "Ada";6my $passed→ (empty) = $name(empty) eq $expectedAda;7my $summary→ different = $passed(empty) ? "same" : "different";89print "name=$name(empty)\n";10print "expected=$expectedAda\n";11print "passed=$passed(empty)\n";12print "summary=$summarydifferent\n";
    outputname=
    expected=Ada
    passed=
    summary=different