my @cases=(); my @FILE=; close(DATA); my $num_lines=scalar(@FILE); $#cases=$num_lines; #pre-extend array foreach my $line (@FILE) { if (($dot % 1000) == 0) { print STDERR "."; } $line=~/^(\S*) [0-9.]* (.*)$/o; my ($class, $feature_vector) = ($1, $2); my %case; $case{'class'}=$class; foreach my $feature (split /\s+/, $feature_vector) { $case{'fv'}{$feature}=1; } push @cases, \%case; $dot++; }