App-revealup
view release on metacpan or search on metacpan
lib/App/revealup/base.pm view on Meta::CPAN
my $caller = caller(0);
no strict 'refs';
*{"${caller}::has"} = sub { attr($caller, @_) };
*{"${caller}::new"} = sub {
my ($klass, %opt) = @_;
for my $key (keys %opt) {
attr($caller, $key, $opt{$key}) if $opt{$key};
}
return bless \%opt, $klass;
};
strict->import;
warnings->import;
}
sub attr {
my ( $caller, $k, $v ) = @_;
no strict 'refs';
return if defined *{"${caller}::$k"};
*{"${caller}::$k"} = sub {
my ( $self, $value ) = @_;
if ( !$value ) {
( run in 0.248 second using v1.01-cache-2.11-cpan-299005ec8e3 )