Why is standard error not ignored in suspect()?
#!/usr/bin/perl
sub ok {
return qx{ ( @_ && true ) 2> /dev/null };
}
sub ok2 {
open(STDERR, ">", "/dev/null");
return qx{ @_ && true };
}
sub suspect {
local *STDERR;
open(STDERR, ">", "/dev/null");
return qx{ @_ && true };
}
my $cmd = "ls /nosuchfile";
print "Some output = Bad\n";
suspect($cmd);
print "No output = OK\n";
ok($cmd);
ok2($cmd);