## no critic qw(Capitalization ProhibitMultiplePackages ProhibitReusedNames) # SYSTEM DEFAULT 3: allow multiple & lower case package names
package
# hide from PAUSE indexing
rperlnamespaces;
use
strict;
use
warnings;
our
$VERSION
= 0.002_000;
use
Data::Dumper;
sub
array {
my
$namespaces
= [];
for
my
$name
(
sort
keys
%main::
) {
my
$glob
=
$main::
{
$name
};
if
( (not
ref
$glob
) and %{
$glob
} ) {
# check glob ref to avoid "not a HASH reference" error on DUMMY code refs
push
@{
$namespaces
},
$name
;
}
}
return
$namespaces
;
}
sub
hash {
# print 'in rperlnamespaces::hash(), top of subroutine', "\n";
my
$namespaces
= {};
for
my
$name
(
sort
keys
%main::
) {
my
$glob
=
$main::
{
$name
};
# print 'in rperlnamespaces::hash(), have ref $glob = ', ref $glob, "\n";
# print 'in rperlnamespaces::hash(), have $glob = ', Dumper($glob), "\n";
if
( (not
ref
$glob
) and %{
$glob
} ) {
# check glob ref to avoid "not a HASH reference" error on DUMMY code refs
$namespaces
->{
$name
} = 1;
}
}
# print 'in rperlnamespaces::hash(), bottom of subroutine, about to return $namespaces = ', Dumper($namespaces), "\n";
return
$namespaces
;
}
sub
hash_noncore {
# print 'in hash_noncore(), have $rperlnamespaces_generated::CORE = ' . Dumper($rperlnamespaces_generated::CORE) . "\n";
my
$namespaces
= {};
for
my
$name
(
sort
keys
%main::
) {
my
$glob
=
$main::
{
$name
};
if
( (not
ref
$glob
) and %{
$glob
}
# check glob ref to avoid "not a HASH reference" error on DUMMY code refs
and ( not
exists
$rperlnamespaces_generated::CORE
->{
$name
} ) )
{
$namespaces
->{
$name
} = 1;
}
}
return
$namespaces
;
}
sub
hash_noncore_nonrperl {
# print 'in hash_noncore(), have $rperlnamespaces_generated::CORE = ' . Dumper($rperlnamespaces_generated::CORE) . "\n";
my
$namespaces
= {};
for
my
$name
(
sort
keys
%main::
) {
my
$glob
=
$main::
{
$name
};
if
( (not
ref
$glob
) and %{
$glob
}
# check glob ref to avoid "not a HASH reference" error on DUMMY code refs
and ( not
exists
$rperlnamespaces_generated::CORE
->{
$name
} )
and ( not
exists
$rperlnamespaces_generated::RPERL
->{
$name
} ) )
{
$namespaces
->{
$name
} = 1;
}
}
return
$namespaces
;
}
1;