<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">#!/usr/bin/perl 
######################################################################
# (c) Michael Schilli 1999
######################################################################

##############################################################
  package PersTest;          # Beispielklasse, die persistente
                             # Eigenschaften erbt.
##############################################################
use Persistent;

@ISA = qw ( Persistent );    # Erbt von "Persistent.pm"

sub new {                    # Konstruktor
    my $type = shift;
    my $self = {};
    bless $self, $type;
}

sub initdata {               # Daten initialisieren
    my $self = shift;

    $self-&gt;{'the_hash'}   = \%the_hash;
    $self-&gt;{'the_array'}  = \@the_array;
    $self-&gt;{'the_scalar'} = 
      "Dieser Skalar enthält einen sehr " .
      "langen Wert mit einigen Sonderzeichen: " .
      " @,\$,\\,\",'.";
    $the_hash{'hash_key'} = 'hash_value';
    $the_array[1]         = 'array_value';


                             # Neues Objekt als Teil des 
                             # persistenten Objekts erzeugen
    my $objref = PersTest-&gt;new();
    $objref-&gt;{'myobjvar'} = 'myobjvarval';
    $self-&gt;{'the_object'} = $objref;
}

##############################################################
  package main;              # Hauptprogramm
##############################################################

                             # Persistentes Objekt
$obj1 = PersTest-&gt;new();     # erzeugen
$obj1-&gt;initdata();           # initialisieren 
$obj1-&gt;store("myobj.sav") || # speichern
    print "Cannot save\n";

$obj2 = PersTest-&gt;new();     # Neues persistentes 
                             # Objekt erzeugen
$obj2-&gt;load("myobj.sav") ||  # ... und mit den gespeicherten
    print "Cannot load\n";   # Daten von obj1 initialisieren

                             # Objektdaten ausgeben
print 
  "\$obj2-&gt;{'the_object'}-&gt;{'myobjvar'} = ",
  "$obj2-&gt;{'the_object'}-&gt;{'myobjvar'}\n";
print 
  "\$obj2-&gt;{'the_array'}-&gt;[1]           = ",
  "$obj2-&gt;{'the_array'}-&gt;[1]\n";
print 
  "\$obj2-&gt;{'the_hash'}-&gt;{'hash_key'}   = ",
  "$obj2-&gt;{'the_hash'}-&gt;{'hash_key'}\n";
print 
  "\$obj2-&gt;{'the_scalar'}               = ",
  "$obj2-&gt;{'the_scalar'}\n";
</pre></body></html>