Hi James, In article <[EMAIL PROTECTED]>, James Edward Gray II wrote: [...] > my %quads = { quad1 => [ ], > quad2 => [ ], > quad3 => [ ], > quad4 => [ ] };
I _think_ you meant to use parens and not curly brackets: my %quads = ( quad1 => [ ], quad2 => [ ], quad3 => [ ], quad4 => [ ] ); > while (<DATAFILE>) { > chomp; > my @fields = split /;/, $_; > foreach (@fields) { s/^\s+//; s/\s+$//; } > my @quad1 = @fields[0..7]; > my @quad2 = @fields[8..14] > my @quad3 = @fields[0, 8..14]; > my @quad4 = @fields[15..18]; > # I'm not ashamed of using many variables to save my sanity! > if (not @{ $quads{quad1} }) { > @{ $quads{quad1} } } = map { [ $_ ] } @quad1; > @{ $quads{quad2} } } = map { [ $_ ] } @quad2; > @{ $quads{quad3} } } = map { [ $_ ] } @quad3; > @{ $quads{quad4} } } = map { [ $_ ] } @quad4; > } > else { > push @$_, shift @quad1 foreach @{ $quads{quad1} } }; > push @$_, shift @quad2 foreach @{ $quads{quad2} } }; > push @$_, shift @quad3 foreach @{ $quads{quad3} } }; > push @$_, shift @quad4 foreach @{ $quads{quad4} } }; > } > # yes, the above can be simplified a lot, if it bothers you > # but that is left as an exercise to the reader > } -- Kevin Pfeiffer International University Bremen -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]