perl
Type::Tiny 1.000000 Released
It's been almost 17 months, and over 160 releases to get there, but Type-Tiny 1.000000 has been released on CPAN Day 2014. Type-Tiny is a framework for type constraints and coercions. It can be used for isa checks in Moose,…
Planet Moose – July 2014
Welcome to Planet Moose, a brief write up on what's been happening in the world of Moose in the past month, for the benefit of those of you who don't have their eyes permanently glued to the #moose IRC channel,…
Method Privacy in Perl
This is a slightly expanded version of a comment I posted a couple of days ago on NEILB's blog. Neil was mostly talking about private functions, while I'll be talking mostly about private methods (i.e. object-oriented programming), but I…
Meta-Meta-Meta Problem Solving
OK, so I'm working on a project and some unexpected bug crops up. It turns out to be a bug in a dependency. I could work around it, but… I happen to maintain the dependency, so better to fix…
Because Sometimes Lightspeed is Too Slow
I've pushed Type::Tiny 0.045_03 to CPAN this afternoon. Initial results from CPAN testers seem promising, but if you've got a distribution that uses Type::Tiny it might be worth trying it out with the new version to see if anything…
Planet Moose – June 2014
Welcome to Planet Moose, a brief write up on what's been happening in the world of Moose in the past month, for the benefit of those of you who don't have their eyes permanently glued to the #moose IRC channel,…
Planet Moose – May 2014
Welcome to Planet Moose, a brief write up on what’s been happening in the world of Moose in the past month, for the benefit of those of you who don’t have their eyes permanently glued to the #moose IRC channel,…
Enumerations in Moose
It’s quite a common pattern in object-oriented programming to have an attribute which takes a string as its value, but which only has a small number of valid values. For example: package Shirt; use Moose; # “S”, “M”, “L”,…
Planet Moose – April 2014
Welcome to Planet Moose, a brief write up on what’s been happening in the world of Moose in the past month, for the benefit of those of you who don’t have their eyes permanently glued to the #moose IRC…
Questioning the Role of API Design in Perl
or Querying the Designated API of Perl Roles…
Planet Moose – March 2014
Welcome to Planet Moose, a brief write up on what’s been happening in the world of Moose in the past month, for the benefit of those of you who don’t have their eyes permanently glued to the #moose IRC…
Notice: forthcoming change to Type::Tiny overloading
One of the features of Type::Tiny that differentiates it from Moose’s built-in type constraint system is that it allows stand-alone coercions which can then be mixed with type constraints as required. So if you had a Split coercion which split…
DOAPy Dist
So what’s DOPE? No, not DOPE, DOAP… what’s DOAP? Here’s what Wikipedia has to say… DOAP (Description of a Project) is an RDF Schema and XML vocabulary to describe software projects, in particular free and open source software. It…
Precision Testing for Modern Perl
In a previous entry I discussed some of my favourite CPAN modules for testing Perl code. I got to thinking… there are all these little frameworks on the CPAN like GID, and Modern::Perl, and Defaults::Modern, and Bubblegum which are…
A Less Smart Smartmatch
The smartmatch operator (~~) introduced in Perl 5.10 (and borrowed from Perl 6) has been the subject of much criticism. Its behaviour changes based on the types of its arguments (arrays vs hashes vs numbers vs strings vs …)….
Planet Moose – February 2014
Welcome to Planet Moose, a brief write up on what’s been happening in the world of Moose in the past month, for the benefit of those of you who don’t have their eyes permanently glued to the #moose IRC…
My Favourite Test::* Modules
If you don’t test your code, what makes you think it works?! Here are some of my favourite modules for testing Perl code….
Towards Type::Tiny 1.000000
Type::Tiny has been knocking around in some shape or another for almost a year now. It’s certainly grown a lot since its first commit. The distribution probably no longer merits the “Tiny” name, though the lead module itself is…
Introducing warnings::MaybeFatal
OK, so you’ve written your module like this: package MyUtils; use strict; use warnings FATAL => qw( all ); sub frobnicate { … } 1; It passes its test suite, and all is fine and dandy. You use the frobnicate…