#!/usr/bin/perl use strict; use warnings; use DBI; ######################################################################## package Category; sub new { bless {}, shift; } sub load_fromdb { my ($self, $dbh) = @_; my $query = "SELECT * FROM Category WHERE tag = 'tag'"; ########## -1- ########## print "load_fromdb: got " . $dbh->selectall_hashref($query, 'id') . "\n"; } sub save_todb { my ($self, $dbh) = @_; ########## -2- ########## local $dbh->{RaiseError}; print "localised \$dbh->{RaiseError}, became " . \$dbh->{'RaiseError'} . "\n"; print "\$dbh is $dbh\n"; ########## -3- ########## my @a = $dbh->selectrow_array("SELECT id FROM Tag WHERE id = 'ciao'"); } ######################################################################## package main; my $dbh = DBI->connect("DBI:mysql:database=forecast_recurrent;host=localhost", "poletti", "", {'RaiseError' => 0, 'PrintError' => 0}); print "DB handler: $dbh\n"; my $c = new Category; $c->load_fromdb($dbh, 'HEAD'); print "\$c object holds " . scalar(keys %$c) . " elements\n"; $c->save_todb($dbh, 'TRY');