A truth check verifies that a value is usable in a condition.

truthy A truthy value behaves as true in an `if` condition.

Truth Checks

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

sub check_truthy {
    my ($value) = @_;
    return $value ? "pass" : "fail";
}

my $token = "ready";
my $status = check_truthy($token);
my $length = length $token;

print "token=$token\n";
print "length=$length\n";
print "status=$status\n";
use strict;
use warnings;

sub check_truthy {
    my ($value) = @_;
    return $value ? "pass" : "fail";
}

my $token = "";
my $status = check_truthy($token);
my $length = length $token;

print "token=$token\n";
print "length=$length\n";
print "status=$status\n";
use strict;
use warnings;

sub check_truthy {
    my ($value) = @_;
    return $value ? "pass" : "fail";
}

my $token = "go";
my $status = check_truthy($token);
my $length = length $token;

print "token=$token\n";
print "length=$length\n";
print "status=$status\n";
  1. $token ← ready

    9my $token→ ready = "ready"; #@token="", "go"10my $status = check_truthy($tokenready);11my $length = length $token;
  2. $value ← ready

    4sub check_truthy {5    my ($value→ ready) = @_;6    return $valueready ? "pass" : "fail";7}
  3. $status ← pass, $length ← 5

    9my $token = "ready"; #@token="", "go"10my $status→ pass = check_truthy($tokenready);11my $length→ 5 = length $tokenready;1213print "token=$tokenready\n";14print "length=$length5\n";15print "status=$statuspass\n";
    outputtoken=ready
    length=5
    status=pass
  1. $token ← (empty)

    9my $token→ (empty) = "";10my $status = check_truthy($token(empty));11my $length = length $token;
  2. $value ← (empty)

    4sub check_truthy {5    my ($value→ (empty)) = @_;6    return $value(empty) ? "pass" : "fail";7}
  3. $status ← fail, $length ← 0

    9my $token = "";10my $status→ fail = check_truthy($token(empty));11my $length→ 0 = length $token(empty);1213print "token=$token(empty)\n";14print "length=$length0\n";15print "status=$statusfail\n";
    outputtoken=
    length=0
    status=fail
  1. $token ← go

    9my $token→ go = "go";10my $status = check_truthy($tokengo);11my $length = length $token;
  2. $value ← go

    4sub check_truthy {5    my ($value→ go) = @_;6    return $valuego ? "pass" : "fail";7}
  3. $status ← pass, $length ← 2

    9my $token = "go";10my $status→ pass = check_truthy($tokengo);11my $length→ 2 = length $tokengo;1213print "token=$tokengo\n";14print "length=$length2\n";15print "status=$statuspass\n";
    outputtoken=go
    length=2
    status=pass