Package-Based Object Patterns
State Records
Keep related state as named scalar values.
State Records
state_records.pl
use strict;
use warnings;
package Badge;
sub summary {
my ($name, $level) = @_;
return "$name:$level";
}
package main;
my $level = ;
my $name = "Rin";
my $summary = Badge::summary($name, $level);
print "name=$name\n";
print "level=$level\n";
print "summary=$summary\n";
use strict;
use warnings;
package Badge;
sub summary {
my ($name, $level) = @_;
return "$name:$level";
}
package main;
my $level = ;
my $name = "Rin";
my $summary = Badge::summary($name, $level);
print "name=$name\n";
print "level=$level\n";
print "summary=$summary\n";
use strict;
use warnings;
package Badge;
sub summary {
my ($name, $level) = @_;
return "$name:$level";
}
package main;
my $level = ;
my $name = "Rin";
my $summary = Badge::summary($name, $level);
print "name=$name\n";
print "level=$level\n";
print "summary=$summary\n";
state-records
State is easier to reason about when each field has a clear name.