Modules and Packages
Qualified Calls
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
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";
$value ← 6
13my $value→ 6 = 6; #@value=3, 914my $doubled = MathBox::double($value6);$value ← 6
6sub double {7 my ($value→ 6) = @_;8 return $value6 * 2;9}$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
$value ← 3
13my $value→ 3 = 3;14my $doubled = MathBox::double($value3);$value ← 3
6sub double {7 my ($value→ 3) = @_;8 return $value3 * 2;9}$doubled ← 6
13my $value = 3;14my $doubled→ 6 = MathBox::double($value3);1516print "value=$value3\n";17print "doubled=$doubled6\n";outputvalue=3 doubled=6
$value ← 9
13my $value→ 9 = 9;14my $doubled = MathBox::double($value9);$value ← 9
6sub double {7 my ($value→ 9) = @_;8 return $value9 * 2;9}$doubled ← 18
13my $value = 9;14my $doubled→ 18 = MathBox::double($value9);1516print "value=$value9\n";17print "doubled=$doubled18\n";outputvalue=9 doubled=18