|
sub save { my ($self) = @_; return 1 if $self->{changes} == 0; my $tmpfile = $self->{dbfile} . ".TMP"; my $xml = $xs->XMLout({book => $self->{records}}); my $out = new IO::File $tmpfile, O_WRONLY|O_CREAT|O_TRUNC or croak "Unable to create $tmpfile: $!"; print $out $xml or croak "Write error on $tmpfile: $!"; $out->flush or croak "Write error on $tmpfile: $!"; $out->fsync or croak "Fsync failed on $tmpfile: $!"; $out->close or croak "Close failed on $tmpfile: $!"; rename($tmpfile, $self->{dbfile}) or croak "Rename operation failed for $tmpfile: $!"; $self->{changes} = 0; return 1; } |
Hier muß wieder die Indirektion hinzugefügt werden mit {book => $self->{records}}, die zuvor wegoptimiert worden ist. | |
XMLout führt die Ausgabe nicht selbst durch, sondern
liefert nur eine Zeichenkette zurück, die den gesamten
XML-Text enthält.
|
Copyright © 1996 - 2003 Andreas Borchert, in HTML konvertiert am 01.10.2003 |