There is none, all of them have their benefits and drawbacks. For the record, the Moose community has no preference. And MooseX::Method::Signatures is part of MooseX::Declare which is still considered an "experiment" by many (including much of the Moose core dev team).

So I'm trying out Moo, which I saw used on CPAN.

Do not let a few brave souls lead you to believe that Moo is a not still highly experimental. I would be very wary of deploying something so young as Moo, I would lead more towards the pure-perl version of Mouse which is much more mature.

Thanks for the answer. I will go with Method::Signatures::Simple in the end. (I would have liked signatures for functions.) Now I just need to see if someone has updated CPerl mode in Emacs (edit: to recognize the 'method' instead of just 'sub').

Re Moo -- I am writing a hobby hack; a bit experimental sounds OK. :-) Also, if there are problems -- as far as I can tell, it should be quite easy to switch to Moose/Mouse.