Perl Programming: What I didn't know about 'each'

I spent a small amount of time debugging a problem in a script I was modifying this morning as a while loop with each seemed to loop forever:

use strict;
use warnings;
use Data::Dumper;

my %x = (one => 1, two => 2, three => 3, four => 4);

while (my ($key, $value) = each %x) {
    # obviously the real script was doing a lot more here
    print "$key $value\n";
    print Dumper(%x); # or simply my %y = %x

Selling a vehicle privately

It has been ages since I bought or sold a car or motorbike privately but recently I've been in the position of having to sell my deceased mother-in-law's car.

I never imagined it would so full of pitfalls and problems. A colleague sold their car recently via ebay classifieds so we thought we try that first - cheaper than autotrader (about £18).

Perl DBD::ODBC 1.44_1 released to the CPAN

I've just uploaded DBD::ODBC 1.44_1 to the CPAN. This is the first release since the enforced move away from subversion on (not that this is a complaint). Hopefully, with DBD::ODBC being on github now I might get a bit more in the way of contributions.

There are a couple of bugs fixed but unless you reported them I'd be surprised if you are affected by them but all testing is welcome.

118 118 what a complete and utter con

So this week I got an email from BT saying my monthly direct debit had gone to £71pm - more than double what it was previously.

I expected my phone bill to be larger these last few months. My mother in law has been seriously ill for a long time and we've been on the phone a lot more recently. Sadly, last month, she died in hospital and after the funeral was over we've been trying to sort out probate. I kept getting email alerts from BT saying you've just spent over £1 on your bill and I've largely ignored them as we've been at home more and using the phone more - what a mistake!

Those silly men in moustaches have conned us! Now I know how they can afford to spend all that money on television adverts (and I know what these cost).

What seems to have happend is this. My wife has been trying to sort out probate and this has necessitated ringing loads of people and she has used THAT NUMBER for directory enquires. Once you get the number (50p per minute so your thinking I'll pay at most 50p for a directory enquiry) is that the /nice/ people at 118 offer to connect you and my wife thought, that's ok, please do. Of course no one at that company attempts to explain when they dial the number for you that you'll be paying 50pm even if you are ringing your neighbour.

Perl DBD::ODBC 1.43 released to the CPAN

  • Changes in DBD::ODBC 1.43 March 6 2013
  • This is a full release of all the 1.42_* development releases.


    • [Bug FIXES]
    • Minor fix to 10handler.t test suite which relied on a native error being true instead of defined.

  • Changes in DBD::ODBC 1.42_5 January 25 2013
    • [BUG FIXES]
    • Not all modules used in test code were specified in build_requires.

  • Changes in DBD::ODBC 1.42_4 January 21 2013

New 1.42_2 release of Perl DBD::ODBC

Changes in DBD::ODBC 1.42_2 December 17 2012

There is no need to upgrade to this version unless you are on a 64 bit platform where ints are 4 bytes and you update/delete/insert more than 2^31 rows and need the affected rows back.

Software Support and the deminishing usefulness of search engine results (a rant)

I've written commercial software and I maintain some open source software. I've also helped out with software support in various companies when the support person escalated the support issue to a developer. In the Open Source arena I think I've provided good support for the software I maintain and the company I work for now provides exceedingly quick support which more than often sorts the problem out immediately. All this is done by looking at the problem and provided information and providing a custom response but as far as I can see a descreasing number of companies manage to do this.

Perl DBIx::LogAny might replace DBIx::Log4Perl

Whilst at YAPC::EU 2012 (what a great conference BTW) a friend suggested I might change DBIx::Log4perl to DBIx::LogAny (where Log::Any did not exist when I wrote DBIx::Log4perl). DBIx::Log4perl came about when I was writing a large DBI based application and needed to know what was going on and realized the DBI tracing was far too detailed for us. DBIx::Log4perl logs at different levels DBI method calls and in particular everything it can find when an error occurs. Mostly all I needed was everything I could find when an error occurred but logging SQL passed to do and prepare and bound parameters etc was useful too.

Perl DBD::ODBC 1.42_0 release

I've just released Perl DBD::ODBC 1.42_0 development release.

There is no reason to upgrade unless you are using the MS Access ODBC Driver.

=head2 Changes in DBD::ODBC 1.42_0 November 28 2012


MS Access requires a longchar column to be bound using SQL_LONGVARCHAR.
However, MS Access does not support SQLDescribeParam and we default to
SQL_VARCHAR in this case. The point at which we switch to SQL_LONGVARCHAR
was defaulted to 4000 (for MS SQL Server). We now default to SQL_LONGVARCHAR
for MS Access when data is > 255. This means you can remove those

Perl DBIx::LogAny replacement for DBIx::Log4perl

Whilst at YAPC::EU 2012 there was a talk which included Log::Any. I didn't attend that talk but a friend (Jens Rehsack) was and he wondered why DBIx::Log4perl wasn't DBIx::LogAny. The simple answer is that Log::Any did not exist when I wrote it and we were using Log::Log4perl.

I had plans for today but the weather was poor and so I thought I'd try a quick hack of DBIx::LogAny. You can find it here. There are 2 problems:

Syndicate content