Beast wrote:
> #!/usr/bin/perl
> use strict;
> 
> my $log = '/non/existence/dir/test.log';
> my $msg = "test";
> &write_log($msg);
> 
> sub write_log {
>    my $msg = shift;
>    open LOG, ">>$log" || die "Can't write to $log: $!\n";
>       print LOG $msg;
>    close LOG;
> }
> 
> ---
> 
> It doesn't die or print any error even $log did not exist.
> why?

The || operator has higher precedence so:

">>$log" || die "Can't write to $log: $!\n"

is evaluated first and the result of that expression (">>$log") is the file
name that is opened.

perldoc perlop
perldoc perlopentut


John
-- 
use Perl;
program
fulfillment

-- 
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