my %fields = ( record_num =>[0,10], characteristic_1 =>[10,10], characteristic_2 =>[20,10], genus =>[30,10], subspecies =>[40,20], ); substr($buf, @{$fields{genus}}) = uc(substr($buf, @{$fields{genus}});