1. 13
  1. 2

    This looks really interesting. I especially like the consistent naming across the built in data types and the method chaining stuff. Also like how easy it looks to do a plug-in for the various built in classes. Will give it an install and play with it!

    1. 1

      These look really nice! I also took a look around some of the other cpanery projects. I am very impressed, you’re prolific!

      1. 1

        Hey @grahamc, thanks so much. I’ve never been called profilic before. That made my day. Cheers!

      2. 1

        @rml Thanks for the comment. Yes, the main goal of Venus is to act as a standard library, i.e. provide a robust set of methods for dealing with common computing tasks when operating on primitive data types.

        For example, on standardization, all “mappable” methods, e.g. all, any, map, grep, etc, are available to operate on the array and hash data in the exact same way.

        The methods support “default variable” syntax, i.e. $array->all(sub { $_ > 0 }), as well as “kay/value” syntax, i.e. $array->all(sub { my ($k, $v) = @_; $v > 0 }).

        Moreover, on standardization, if your program receives a Venus::Array, or similar, you can also $array->say('all', sub { $_ > 0 }) for debugging purposes, etc, or my ($error, $result) = $array->catch('all', sub { log($_) }) which would be difficult (at-least much more complicated) using only List::Util.

        Consistency in naming and method signatures was also is also a design goal.