in reply to Making open fail

If I understand your program correctly somehow you're trying to get a file name from get_string() method and then open it, so far so good, but in the open call you are passing a reference to an scalar that is an in-memory file ( as mentioned here ) that means that if you read STDIN you will get $string's contents. In this scenario open will never fail as there no way you can have a problem opening an in-memory file.

So if you meant to get a filename from an get_string() and open it you have to take out the "\" and if file cannot be opened will fail for sure

my $file = '/tmp/inexistent'; open( my $fh, "<", \$file) or print "open in-memory file error"; open( my $fh1, "<", $file) or print "open real file error ";