| Next | February 2001 | Slide #21 |
Here is a more interesting example:
Database-backed objects with data retrieved on demand
package Person;
sub new {
my ($class, $oldrec) = @_;
my $dbh = Person->connect() or return;
my $self = { DBH => $dbh };
if (defined $oldrec) {
$self->{ID} = $oldrec;
} else {
$self->{ID} = $dbh->allocate_new_record();
};
bless $self, $class;
}
sub name {
my $self = shift;
if (@_) {
my $new_name = shift;
$self->{DBH}->update($self->{ID}, 'NAME', $new_name);
$self->{NAME} = $new_name;
}
$self->{NAME} = $self->{DBH}->select($self->{ID}, 'NAME')
unless exists $self->{NAME};
return $self->{NAME};
}
| Next | ![]() |
Copyright © 2001 M-J. Dominus |