Oh sorry what I meant is actually:
has 'friends' => { is => 'rw', isa => 'Array', default => () };
Anyway the reason I said the latter syntax makes more sense is because I saw the latter syntax more often. For example In https://metacpan.org/pod/HTML::Template#TMPL_LOOP:
$template->param(
EMPLOYEE_INFO => [{name => 'Sam', job => 'programmer'}, {name => '
+Steve', job => 'soda jerk'}]
);
print $template->output();
This code uses reference(array) because of clarity and I think most subroutines uses this syntax. However this line
has 'friends' => ( is => 'rw', isa => 'Array', default => () );
is same as:
has 'friends',is => 'rw', isa => 'Array', default => ();
which is not clear and as for me that looks just weird.
But when using reference, you don't have to use awkward arrow between 'friends' and 'is'
has 'friends',{ is => 'rw', isa => 'Array', default => () };
Of course, not using reference parameter saves some typing but that saves typing of Moose's author, not of us. And using reference is also not a big deal.Clarity is more important |