Ausnahmenbehandlungen

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

Passwd4.pm
use Carp;

# ...

sub pw_init {
   my ($passwd_file) = @_;
   $passwd_file = "/etc/passwd" unless defined $passwd_file;
   my $passwd = new IO::File $passwd_file
      or croak "Unable to read from $passwd_file: $!\n";
   # ...
}

*Bibliotheksmodule schieben die Schuld gerne auf den Aufrufer und verwenden daher gerne croak aus dem Modul Carp anstatt die.
 
testpasswd4.pl
use Passwd4 qw(getpwent_by_login pw_init);

my $cmdname = $0; $cmdname =~ s{.*/}{};
my $usage = "Usage: $cmdname login [passwd]\n";
die $usage if @ARGV == 0;
my $login = shift;
pw_init(shift) if @ARGV > 0;
die $usage unless @ARGV == 0;

doolin$ perl testpasswd4.pl borchert /tmp/blubber
Unable to read from /tmp/blubber: No such file or directory
 at testpasswd4.pl line 11
doolin$

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1996 - 2003 Andreas Borchert, in HTML konvertiert am 01.10.2003