Ein Beispiel für eine Textdatenbank VI

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

Books.pm
sub find {
   my ($self, $keyval) = @_;
   return () unless defined $self->{records}->{$keyval};
   # return a copy of the record
   return %{$self->{records}->{$keyval}};
}

sub add {
   my ($self, %record) = @_;
   croak "Key field is missing" unless defined $record{$key};
   $self->{records}->{$record{$key}} = \%record;
   $self->{changes}++;
}

sub delete {
   my ($self, $keyval) = @_;
   delete $self->{records}->{$keyval};
   $self->{changes}++;
}

*Wichtig ist, daß Schreiboperationen bei changes notiert werden und bei Leseoperationen nur Kopien ausgehändigt werden.
 
*Gegebenenfalls sind weitere Konsistenzüberprüfungen und die Trennung von add und modify sinnvoll.
 

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