_install_tracked $target => hasrw => sub { my @words = @_; if (@_ == 1 and $words[0] =~ m/ /) { # they passed a string with space separated words @words = split ' ', $words[0]; } push @words, 'is', 'rw'; # not sure if this is the right way to call has $MAKERS{Testpool}{exports}{has}->(@words); return; }; _install_tracked $target => hasro => sub { my @words = @_; if (@_ == 1 and $words[0] =~ m/ /) { @words = split ' ', $words[0]; } push @words, 'is', 'ro'; $MAKERS{Testpool}{exports}{has}->(@words); return; }; _install_tracked $target => hasrwd => sub { my ($name, $default) = @_; my @words = ($name, 'default', $default, 'is', 'rw'); $MAKERS{Testpool}{exports}{has}->(@words); return; }; _install_tracked $target => hasrod => sub { my ($name, $default) = @_; my @words = ($name, 'default', $default, 'is', 'ro'); $MAKERS{Testpool}{exports}{has}->(@words); return; };