Module, die automatisch Namen exportieren

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

Passwd2.pm
package Passwd2;

use strict;
use warnings;
use IO::File;
require Exporter;

our @ISA = qw(Exporter);
our @EXPORT = qw(getpwent_by_uid getpwent_by_login);

my $passwd_file = "/etc/passwd";
my $passwd = new IO::File $passwd_file
   or die "Unable to read from $passwd_file: $!\n";
my %passwd_by_uid; my %passwd_by_login;
while(<$passwd>) {
   chomp;
   my ($login, $passwd, $uid, $gid,
      $name, $home, $shell) = split /:/;
   $passwd_by_uid{$uid} =
   $passwd_by_login{$login} = {
      login => $login, passwd => $passwd,
      uid => $uid, gid => $gid,
      name => $name, home => $home, shell => $shell
   };
}
$passwd->close;

sub getpwent_by_uid { return $passwd_by_uid{$_[0]}; }
sub getpwent_by_login { return $passwd_by_login{$_[0]}; }
1; # module was loaded successfully

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