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


in reply to hash keys from another file

my @dev; while(<DEV>){ chomp; @dev = <DEV>; }

This almost certainly does not do what you want.

In the while(<DEV>) it reads a line from the file, in the chomp; line it removes the trailing newline, and then in the line @dev = <DEV> it ignores the read line, and reads all the rest of the lines into the array. Without any newline removal.

What you probably meant to write was

while (<DEV>) { chomp; push @dev, $_; }

Or even simpler:

my @dev = <DEV>; chomp @dev;

Replies are listed 'Best First'.
Re^2: hash keys from another file
by Ninke (Novice) on Mar 23, 2013 at 13:03 UTC
    Great, thank you and choroba for explaining me the mistake, now my code serves the purpose:)

      Hmm, Moritz explained you a specific mistake to be corrected. But Choroba told you something that you should not overlook and is at least as important in my view: load the param file into memory (a hash or whatever, depending on the specifics), but don't load the data file in memory if you can avoid it. It is usually far better to iterate over the data line by line when possible. This will save your day when your datafile becomes huge.