foreach(@suffix) { $sf = $_ ; print STDERR "$mn $sd $sf\n" ; # Build the filename of the data file we want $fn = "$sd/data." . $sf ; open(DATA, "<$fn") || print "Failed to open $fn\n" ; # Store the data in a multidimensional hash (this will overwrite + the hash, but that's # not the problem with this bug. while() { $v{$mn}{$sd}{$sf} = $_ ; } ....