[Vienna-pm] or oder || ?
Thomas Klausner
domm at cpan.org
Sat Jul 7 02:53:14 PDT 2007
Hi!
On Sat, Jul 07, 2007 at 11:40:27AM +0200, gooly at gmx.at wrote:
> In den Tutorials zu Perl wird bei open das 'or' oder das '||' ohne
> erkennbaren Unterschied gehandhabt:
was IMO daemlich ist...
> (aus Perl/Doc/functions/open.html):
> open(TMP, "+>", undef) or die ...
> und gleich danach
> open($fh, '>', \$variable) || ..
>
> Bei mir ist aber nun folgendes zu beobachten:
> $falsch = "/homme/../$file";
> jetzt ein
> open F, "> $falsch" || die "$!\n";
> geht anstandslos durch bis ich dann (zB n?chste Zeile)
> auf F schreiben will:
> print() on closed filehandle ...
>
> aber ein
> open F, "> $falsch" or die "$!\n";
> stirbt mit : 'Datei oder Verzeichnis nicht gefunden'
>
> Warum das? Das bei open? Beide binden links, warum der Unterschied?
Die Klammern sind der Untschied.
open FH,"file" || die $!; == open FH, ("file" or die $!);
Meister Conway sagt zwar (Perl Best Practices, p207):
open my $FH, '>', $file or die $!;
Ich ziehe aber explizite Klammern und || vor:
open (my $FH, '>', $file) || die $!;
--
#!/usr/bin/perl http://domm.plix.at
for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/}
More information about the Vienna-pm
mailing list