# $Id: Htpasswd.pm,v 1.3 2000/05/24 20:27:48 kayos Exp $ package Tie::Htpasswd; use strict; use vars qw($VERSION); use Apache::Htpasswd; $VERSION = sprintf("%d.%02d",q$Revision: 1.3 $ =~ /(\d+)\.(\d+)/); my $F_FILENAME = 0; my $F_DATA = 1; sub TIEHASH { my ($pkg, $filename) = @_; my $obj = []; $obj->[$F_FILENAME] = $filename; $obj->[$F_DATA] = new Apache::Htpasswd($filename); return (bless $obj, $pkg); } sub FETCH { my ($self,$key) = @_; return $self->[$F_DATA]->fetchPass($key); } sub STORE { my ($self,$key,$value) = @_; if($self->[$F_DATA]->fetchPass($key)) { $self->[$F_DATA]->htpasswd($key,$value,1); } else { $self->[$F_DATA]->htpasswd($key,$value); } return $self->[$F_DATA]->fetchPass($key); } sub DELETE { my ($self,$key) = @_; my $prev_value = $self->[$F_DATA]->fetchPass($key); $self->[$F_DATA]->htDelete($key); return $prev_value; } sub EXISTS { my ($self,$key) = @_; my $result = $self->[$F_DATA]->fetchPass($key); return ( $result ); } sub DESTROY { my ($self) = @_; undef $self->[$F_DATA]; } 1;