Sponsoring The Perl Toolchain Summit 2025: Help make this important event another success Learn more
|
our $VERSION = "2.0002" ;
my $file = Number::Phone::_find_data_file( 'Number-Phone-UK-Data.db' );
my $slurped = 0;
my $db ;
my $pid = -1;
sub db {
return $db if ( $slurped );
if (! $db || $pid != $$) {
$pid = $$;
$db = Data::CompactReadonly-> read ( $file , tie => 1, fast_collections => 1);
}
return $db
}
sub slurp {
return if ( $slurped );
$db = _slurp(db());
$slurped ++;
}
sub _slurp {
my $db = shift ;
if (! ref ( $db )) {
return $db
} else {
return { map {
$_ => _slurp( $db ->{ $_ })
} keys (%{ $db }) };
}
}
1;
|