Rod Jenkins wrote:
> After a failed open, I want to run two statements for an "or die".
> 
> Code Quesiton:
> 
> open (TEST, ">/tmp/test")
>       or {
>               die "Could not open test file\n";
>               syslog("LOG_ALERT","Could not open test file");
>            };
> 
> This does not work, but what is the "right" way to do this?  I know I
> could write a MyDie sub and pass a string to it.

You can't call die() before calling syslog(), since die() doesn't return. So
you need to swap those.

Then you can write it as:

 open (TEST, ">/tmp/test") or do {
     syslog("LOG_ALERT","Could not open test file");
     die "Could not open test file\n";
 };

Or,

 open (TEST, ">/tmp/test")
     or syslog("LOG_ALERT","Could not open test file"),
     die "Could not open test file\n";

Or,

 unless (open TEST, ">/tmp/test") {
     syslog("LOG_ALERT","Could not open test file");
     die "Could not open test file\n";
 }

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to