Package-Based Object Patterns
Private Helpers
Use lexical package data to hide a formatting detail.
Private Helpers
private_helpers.pl
use strict;
use warnings;
package TicketLabel;
my $prefix = "ticket";
sub label {
my ($number) = @_;
return "$prefix-$number";
}
package main;
my $number = ;
my $label = TicketLabel::label($number);
print "number=$number\n";
print "label=$label\n";
use strict;
use warnings;
package TicketLabel;
my $prefix = "ticket";
sub label {
my ($number) = @_;
return "$prefix-$number";
}
package main;
my $number = ;
my $label = TicketLabel::label($number);
print "number=$number\n";
print "label=$label\n";
use strict;
use warnings;
package TicketLabel;
my $prefix = "ticket";
sub label {
my ($number) = @_;
return "$prefix-$number";
}
package main;
my $number = ;
my $label = TicketLabel::label($number);
print "number=$number\n";
print "label=$label\n";
private-helpers
Lexical variables inside a package can keep helper details away from callers.