Reviews by mascip

cpanratings
 

RSS

invoker (0.34) *****

I'm surprised that no-one else reviewed this module.
I find it so much nicer to be able to write

$->get('apple')

rather than

$self->('apple')

Thank you!

true (0.18) *****

Perfect to use with Syntax::Collector !

The modules i use in ALL my Perl files are in MYNAME::Bundle::Everywhere, a module that i implement with Syntax::Collector. true is one such module. No more need for '1;' at the end of a file.

The documentation could mention Syntax::Collector.

MooX-ClassAttribute (0.006) *****

Does what it says. No worries so far using this module for 5 months.

A big thank you to the author, Toby, who created this module only a few days after i asked on PerlMonks if a module existed for this purpose. Impressive reactivity!

Test-Simple (0.98) *****

Everyone uses Test::More, it's excellent.

You might want to check out Test::Simpler too, if you just need to compare numbers and strings.

Test-Simpler (0.000006) *****

Oh i'm loving this!

ok $result > $expected

is so much smoother than

cmp_ok($result, '>', $expected)

And the error messages are extremely clear too.

PerlX-MethodCallWithBlock (0.05) *****

Wow, this is very good indeed. I have to try and use it with autobox and autobox::Core.

V (0.13) *****

So useful and easy to use - cheers :-)

boolean (0.28) *****

For me, Perl was missing this module, cheers :-)

App-perlbrew (0.58) ****

I haven't used perlbrew, but you might want to check perlall, as its documentation says :
"perlall is like a better perlbrew with a lot of testing features."

Data-Alias (1.16) ****

If you can use Method::Signatures instead, then do!

As the Method::Signatures said: "This is done using the amazing Data::Alias module."

If you can't use Method::Signatures (like me on Windows at the moment), then Data::Alias will help: I use it all the time. It enables me to pass Arrays and Hashes as references into subroutines, without having to worry about whether they are references to Arrays, Hashes, Objects, or Scalars later. With Data::Alias i just alias them when i receive them in the subroutine, like this :
sub my_method {

alias %hash_argument = %{shift()};

alias @list_argument = %{shift()};

# and carry on, using %hash_argument and @list_argument as usual
}

edit: i took my note down from 5 to 4 for this reason: [Method::Signatures] is the modern way to do what Data::Alias does. It is very possible, though, that i have missed some other great uses of Data::Alias.

XXX (0.18) *****

This is so handy, i wish it had a more explicit name, so i would have found it earlier !

Exception-Class (1.36) ****

Exception::Class is very good, but you probably want to check the more recent Throwable::Error.
It is based on Moose, has a Moose-based interface which makes it nicer to handle for Moose users.
And it allows roles compositions for exceptions, which can make a significant difference. For example, an exception can compose several exception roles : it can "do" both File::Exception and Scheduler::Exception.

It is also very easy to learn if you use Moose.

One thing that Exception::Class has and that Throwable::Error doesn't, is an exception factory that builds all the class desired from a structure describing the exception class hierarchy. But you will probably not need it if you use Throwable::X and its tagging system - yes; check out Throwable::X too !

Test-Class (0.38) ****

Test::Class is very good, but you probably want to check the more recent Test::Routine.
It is based on Moose, has a Moose-based interface which makes it nicer to handle for Moose users, and it allows roles compositions for tests, which can make a significant difference.
It also has a good tutorial : Test::Routine::Manual::Demo.