my $pkg = \%::; $pkg = $pkg->{$_.'::'} foreach (split(/::/, __PACKAGE__)); while (@data = $sth1->fetchrow_array()) { for (my $field = 0; $field <= $#data ; $field++) { push(@{$pkg->{'field' . ($field+1)}}, $data[$field]); } }