in reply to subtracting values from 2 hashes

Too much info there. Perhaps narrow down your next post :). Welcome to Perl.

I would read each file into separate hashes, so that $file{seq} = value. Then you compare the values from each.

foreach my $key ( keys %file1 ) { $diff = $file1{$key} - $file2{$key}; }

Your open statements should use variables, not bare words (depreciated), and use an operator. Example:

open( my $fh1, "<", $file1 ) or die "Cannot open [$file1], [$!]";

Use [] for visual separation. $! contains any error message that Perl may have for you.

Neil Watson
watson-wilson.ca

Replies are listed 'Best First'.
Re^2: subtracting values from 2 hashes
by lecb (Acolyte) on Jun 21, 2014 at 19:55 UTC

    Thank you Neil - I will make sure not to put so much in next time (I was afraid if I didn't, and I had made an error somewhere further up, it would have been missed). Didn't mean to overcrowd!

    Please excuse my ignorance, but I have been trying to load both files into their own hashes, the two hashes are:

    %max_unchanged %max_changed

    Maybe there is a much simpler way.. but if I use this:

    my @calc; $diff; foreach my $key (keys %max_changed) { my $diff = $max_unchanged{$key} - $max_changed{$key}; push (@calc, $diff); } print @calc, "\n";

    I still get the same error.. :-s...

    Re your second point, I wasn't too sure what you meant by

    "Your open statements should use variables, not bare words (depreciated), and use an operator."

    When you say "bare words" are you referring to an FILEHANDLE being called FILE?
    Many thanks, E

      Correct, instead of using file handles as bare words (FILE) we now use normal scalars.

      Neil Watson
      watson-wilson.ca