in reply to Re^2: Why a reference, not a hash/array?
in thread Why a reference, not a hash/array?

The prepare/execute/fetch model is there because you will often want to prepare a statement once using placeholders, and then execute it several times using different data each time. (This is faster, and arguably more secure since it helps separate code from data)

my $sth = $dbh->prepare("insert into t (foo,bar) values (?,?)"); $sth->execute("foo", 1); $sth->execute("bar", 2); $sth->execute("baz", 3);
Also, I tend to use the following loop a lot when fetching return data; it allows me to peek at the data and make certain changes that wouldn't have been efficient or possible on the DB server:
while (my $record = $sth->fetchrow_hashref) { # Manipulate record as needed $record->{'foo'} = &bar( $record->{'baz'} ); push @records, $record; }
And voilá, I have an array of hashrefs. Very convenient.