http://www.perlmonks.org?node_id=89237


in reply to UPDATE: Variable number of words/fields in a line/record
in thread Variable number of words/fields in a line/record

Don't use variables, but an array or hash. Would do something like:
while( <> ){ split; splice @_, 0, 2; #removes first two elements store_elements_function( @_ ); #sub to store the remainder }
If you really want to name the items, use a hash. Define the names first:
my @std_keys = qw/proto .../; my @ext_keys = qw/name9 name10 name11/; .. #and in loop: my %hash; if( @_ < 9 ){ @hash{@std_keys} = @_; } else { @hash{(@std_keys, @ext_keys)} = @_; } print "My proto is: ",$hash{'proto'},"\n"; ...
Hope this helps. You can read up on it in perldata.

Jeroen
"We are not alone"(FZ)