in reply to Better way of accessing fields

One way you can reduce typing and speed up assignment is to concentrate on the hash you are assigning to:
while( @result_array = $query->fetchrow_array ) { my $col = $self->{fields}{$result_array[2]}; $col->{Object_ID} = $result_array[0]; # and so on ... }
You could create an array that maps array numbers to column names:
my @name = qw|Object_ID ID ...|; while( @result_array = $query->fetchrow_array ) { my $col = $self->{fields}{$result_array[2]}; for my $pos(@name) { $col->{$name($pos)} = $result_array[$pos]; } $self->{fields}{$result_array[2]}{Value} = ""; $self->{display_order}{$result_array[16]} = $result_array[2]; }

-Mark