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>