Paul Johnson wrote:
On Thu, Dec 02, 2004 at 05:59:49PM -0600, JupiterHost.Net wrote:
if I make a module, say Foobar.pm how do you make it so if a function returns false you can die $!; ?
You can't. Or at least not in the sense you want.
$! is linked to the current value of errno, which will be set in the underlying C libraries. Its value is undefined except for just after an error has occurred. errno is an int (or it can be thought of as one). When you use $! in a numeric context you get the value of errno. When you use $! in a string context you get the text associated with that error number.
It is possible to assign a numeric value to $!, after which $! in a string context will return the text for the error number you assigned, but this is rarely useful, and certainly not the general way you are looking for.
Unfortunately perl doesn't have a standard way of coping with this other than using die, eval {} and $@, which might be seen as overkill in some situations.
Take a look at $! in perldoc perlvar.
Will do thanks for the info ;p
I think as long as a failed open() or mkdir() (IE a system function that does $! sets it already) then that is all I need for this project:
sub baz { mkdir '/dir/I/cant/make' or return; }
will do what i need:
baz or die $!;
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>