The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl
use strict;
use warnings;

my $ver = get_qp_version();
   $ver =~ m/^([\d]+)\.(\d+)$/;
my $new_ver = $1 . '.' . ($2 + 1);

`find lib -type f -name '*.pm' -exec sed -i .bak -e 's/$ver/$new_ver/' {} \\\;`;
`find lib -type f -name '*.pm.bak' -delete`;

sub get_qp_version {
    my $rvfile = get_file_contents('lib/Mail/Toaster.pm') or die "failed to get VERSION\n";
    my ($ver_line) = grep { $_ =~ /^(?:my|our) \$VERSION/ } @$rvfile;
    my ($ver) = $ver_line =~ /(?:"|')([0-9\.]+)(?:"|')/;
    return $ver;
};

sub get_file_contents {
    my $file = shift;
    open my $fh, '<', $file or do {
        warn "failed to open $file";
        return;
    };
    chomp (my @r = <$fh>);
    return \@r;
};