I think that if the point is to reduce typing, such things can be taken to an extreme that jeopardizes readability. People are accustomed to seeing the Moo(se)?y way of doing things. But you could always go to this extreme.....:
package Foo; use Moo; for my $access ( qw/ro rw/ ) { no strict 'refs'; *{'_has'.$access} = sub { has shift, 'is', $access, @_ } } _hasro([qw/ foo bar baz /]); _hasrw([qw/ quuux xyzzy /]); package main; print Foo->new(qw/foo 1 bar 2 baz 3 quuuz 4 xyzzy 5/)->xyzzy, "\n";
Smells bad to me though, and you still have parens..
If you move away from generating the subroutines (which means introducing "repeating yourself"), you can eliminate the parens around the sub calls.
Dave
In reply to Re: Extra-lazy object oriented programming
by davido
in thread Extra-lazy object oriented programming
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |