#!/usr/local/bin/perl5 -w use strict; use DBI; use CGI qw/:standard/; my %days; @days{0..6} = qw / Sunday Monday Tuesday Wesnesday Thursday Friday Saturday /; my $dbh = DBI->connect('DBI:mysql:tapebot:lid42','','') or die "cannot connect to DB\n" . DBI->errstr; my $sth = $dbh->prepare( qq{ SELECT last,keyno,btype FROM weekly WHERE btype = ? AND day = ? ORDER by keyno }); my $full = "F"; my %bighash = (); foreach my $day (sort keys %days) { $bighash{$day} = get_db_entries($sth, $full, $day); } # your other stuff... my $nrows_max; my $i = "2"; $day = '5'; $i = '0'; print "\nnrows: ${ $bighash{$day}->{nrows} }\n"; print "\nnfields: ${ $bighash{$day}->{nfields} }\n"; print "aoa: ${ $bighash{$day}->{aoa}->[$i]->[2] } after\n"; $dbh->disconnect; sub get_db_entries { my ($sth, $full, $day) = @_; my $nrows = $sth->execute($full, $day) or die "Can't execute statement: " . $dbh->errstr; my %data; $data{aoa} = $sth->fetchall_arrayref(); $data{nrows} = $nrows; $data{nfields} = $sth->{NUM_OF_FIELDS}; return \%data; }