Является ли один из них лучшим или худшим подходом?
использует область действия:
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' ) ) {
# ...
}
, передавая объект в качестве аргумента:
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' ) ) {
# ...
}
или создаваяв подпрограмме новый экземпляр:
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' ) ) {
# ...
}