in reply to Re^4: Error: Not enough space
in thread Error: Not enough space

Or is it that the value of $! can be "Not enough space" even without my program causing a memory exception?

Yes. Check to see if the print right before the # here I check $! returned true or false. If it returned false, that print got an error ("Not enough space."). If it returned true, $! is meaningless. Which is to say an error may or may not have occured earlier, but you have no way of knowing. This is stated in the documentation for $! in perlvar.

Replies are listed 'Best First'.
Re^6: Error: Not enough space
by jhazra (Novice) on Jan 05, 2005 at 01:11 UTC
    Ok in that case, which ones are considered to be system calls? is it only the system(..) calls or it is any call to underlying c routines also? Like can a call to print FH "foo"; cause ENOMEM? or can an array allocation cause an ENOMEM? so which all statements in the code should be checked for $! ? Here's an example:
    @arr = ('x', 'y', 'z'); # error occurs so $! is set. But thinking that this small piece of cod +e wont cause any error I dont check for $! here. #some more code her print join(',', @arr); open(FILE, "<file.txt") || die (".....error"); # check for $! here if ($!) { # whcih is the culprit line causing this error? is it array allocation +, or is it print or is it open? }