It might be wise to have given the error message to us, but anyway...
I have had this problem before as well. I would try to test if the expressions turned out false with the
ne equality operator. The great thing about Perl is that Larry has given you options and versatility so, instead of using the
if($tmp_dir ne $dir){...} stuff, you could simply just negate that with the
unless loop. In the process of switching loops, you will have to switch equality operators as well. To fix this, we will just change
ne to
eq. What we have now is
unless($tmp_dir eq $dir){
print OUTPUTFILE "\n", $tmp_dir ,"\n";
$dir = $tmp_dir;
}
This code has the exact same behavior as the loop you were using and has never caused me problems under ActivePerl (on windows 98).
Hope I helped :-)
Tiptoeing up to a Perl hacker.
Dave AKA damian