[Weiter] [Zurück]

die() und eval


Aufbauend auf die und eval kann man einen Exception-Mechanismus in Perl konstruieren. eval kann einen String oder Block ausführen, der dann durch Aufruf von die (mit einer Fehlermeldung) verlassen werden kann. Die Fehlermeldung wird in $@ abgelegt.

Beispiel:

    sub cat
    {
	my $name = $_[0];

	open FOO, "< $name" or die "$!";
	print while ();
	close FOO;
	return 1;
    }

    die "missing filename" unless defined $ARGV[0];

    if (!eval { &cat $ARGV[0]; })
    {
	print STDERR "Ooops... $@";
	exit 1;
    }

Alternativ kann man auch nach dem eval gegen $@ testen...


[Weiter] [Zurück]