The documentation states that parameters are passed as a hash, but they
are in fact passed as a hashref. Passing a hash causes Class::Accessor to
blow up in a particularly uninformative way.
So the docs should read:
$sns = Amazon::SNS->new( { key => $key, secret => $secret } );