#!/usr/bin/perl -w
use strict;
package Foo;
sub new { bless { "_foo", 1, "_bar", 1, "_qux", 1 } }
sub runTests {
my ($self) = @_;
for my $symname (sort keys %{$self}) {
local *sym = ref($self)."::$symname";
&sym if defined(&sym) and $symname =~ /^_.*/;
}
} # sub runTests
sub _foo { print "_foo called\n" }
sub _bar { print "_bar called\n" }
package main;
my $foo = Foo->new();
$foo->runTests();
####
sub runTests {
my ($self) = @_;
for my $symname (sort keys %$self) {
next unless $symname =~ /^_/;
$self->$symname() if $self->can($symname);
}
}
##
##
sub runTests3 {
my ($self) = @_;
no strict 'refs';
for my $symname (sort keys %{ref($self).'::'}) {
next unless $symname =~ /^_/;
$self->$symname() if $self->can($symname);
}
}