package Util::Stuff;
use strict;
use warnings;
package Util::Stuff::aaa1;
sub flag { 1 }
...
package Util::Stuff::aaa2;
sub flag { 0 }
...
package Util::Stuff::aaa3;
sub flag { 1 }
...
...
1;
####
Util::Stuff:aaa1
Util::Stuff:aaa2
Util::Stuff:aaa3
####
use Util::Stuff;
my $temp1 = Util::Stuff::aaa1->flag;
my $temp2 = Util::Stuff::aaa2->flag;
my $temp3 = Util::Stuff::aaa3->flag;
####
use Util::Stuff;
my @names = **get_package_names(Util::Stuff)**
foreach my $name (@names) {
push @temp, $name->flag;'
}