A fully qualified name calls a subroutine from a specific package.

qualified name A qualified name includes the package, such as `MathBox::double`.

Qualified Calls

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

package MathBox;

sub double {
    my ($value) = @_;
    return $value * 2;
}

package main;

my $value = 6;
my $doubled = MathBox::double($value);

print "value=$value\n";
print "doubled=$doubled\n";
use strict;
use warnings;

package MathBox;

sub double {
    my ($value) = @_;
    return $value * 2;
}

package main;

my $value = 3;
my $doubled = MathBox::double($value);

print "value=$value\n";
print "doubled=$doubled\n";
use strict;
use warnings;

package MathBox;

sub double {
    my ($value) = @_;
    return $value * 2;
}

package main;

my $value = 9;
my $doubled = MathBox::double($value);

print "value=$value\n";
print "doubled=$doubled\n";
  1. $value ← 6

    13my $value→ 6 = 6; #@value=3, 914my $doubled = MathBox::double($value6);
  2. $value ← 6

    6sub double {7    my ($value→ 6) = @_;8    return $value6 * 2;9}
  3. $doubled ← 12

    13my $value = 6; #@value=3, 914my $doubled→ 12 = MathBox::double($value6);1516print "value=$value6\n";17print "doubled=$doubled12\n";
    outputvalue=6
    doubled=12
  1. $value ← 3

    13my $value→ 3 = 3;14my $doubled = MathBox::double($value3);
  2. $value ← 3

    6sub double {7    my ($value→ 3) = @_;8    return $value3 * 2;9}
  3. $doubled ← 6

    13my $value = 3;14my $doubled→ 6 = MathBox::double($value3);1516print "value=$value3\n";17print "doubled=$doubled6\n";
    outputvalue=3
    doubled=6
  1. $value ← 9

    13my $value→ 9 = 9;14my $doubled = MathBox::double($value9);
  2. $value ← 9

    6sub double {7    my ($value→ 9) = @_;8    return $value9 * 2;9}
  3. $doubled ← 18

    13my $value = 9;14my $doubled→ 18 = MathBox::double($value9);1516print "value=$value9\n";17print "doubled=$doubled18\n";
    outputvalue=9
    doubled=18