¿Es uno de estos el mejor o el peor enfoque?¿Cómo debo pasar objetos a las subrutinas?
utilizan el alcance:
my $cache = CHI->new(driver => 'File', expires_in => 3600);
sub one {
if (my $data = $cache->get('key_one')) {
# ...
}
sub two {
if (my $data = $cache->get('key_two')) {
# ...
}
pasando el objeto como argumento:
my $cache = CHI->new(driver => 'File', expires_in => 3600);
sub one {
my ($cache) = @_;
if (my $data = $cache->get('key_one')) {
# ...
}
sub two {
my ($argument1, $cache) = @_;
if (my $data = $cache->get('key_two')) {
# ...
}
o la creación en la subrutina una nueva instancia:
sub one {
my $cache = CHI->new(driver => 'File', expires_in => 3600);
if (my $data = $cache->get('key_one')) {
# ...
}
sub two {
my $cache = CHI->new(driver => 'File', expires_in => 3600);
if (my $data = $cache->get('key_two')) {
# ...
}