Thread Tie::File mit referenziertem Array in package
(2 answers)
Opened by sman at 2010-12-09 00:26
Hallo,
ich mache gerade erste Schritte mit Tie und möchte nur kurz wissen, ob das, was ich hier tue, mit rechten Dingen zu geht, oder nicht etwa zu schwerwiegenden Speicher/Performance/...-Problemen führt. Ich konnte dazu leider nichts mit google finden. In meinem Script möchte ich Dateien öffnen, lesen, schreiben, usw.: Code (perl): (dl
)
1 2 3 4 5 6 7 8 use meinpaket; if ($irgendwas) { my $datei = meinpaket->new('file'=>'bla.txt'); my $einpaarzeilen = $datei->get(4,7,8); $datei->set('5'=>'Neue fünfte Zeile'); } Das Paket meinpaket.pm nutzt nun Tie::File mit Arrayreferenz: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 package meinpaket; use strict; use Tie::File; my @a = (); sub new { my $c = shift; my $s = {}; my %p = @_; $s->{'file'} = $p{'file'}; tie @a, 'Tie::File', $s->{'file'}, memory=>10000 or return 0; $s->{a} = \@a; bless $s, $c; return $s; } sub DESTROY { my $s = shift; untie @{$s->{a}}; } sub get { my $s = shift; my @r = (); foreach (@_) { push @r, ${$s->{a}}[$_]; return \@r; } sub set { my $s = shift; my %p = @_; foreach (keys %p) { ${$s->{a}}[$_] = $p{$_}; } return 1; } Dazu habe ich nun folgende Fragen:
Vielen Dank schonmal im Voraus! Last edited: 2010-12-09 00:33:35 +0100 (CET) |