Thread Fortlaufende Nummer in der pm-Datei selbst
(37 answers)
Opened by rosti at 2013-12-31 18:25
hi,
es ist vollbracht. Mein neues Modul Number.pm verwaltet eine fortlaufende Nummer in sich selbst, also in der eigenen Moduldatei. Auf'm Webserver getestet, Owner only darf schreiben, chmod 644 (is default), geht. Blöder Stil? Wer macht sowas beklopptes und lässt ein Modul in seine eigene Datei schreiben? Oder gibts irgendwelche sicherheitsbedenklichen Einwände? PS: 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 39 package Number; use strict; use warnings; use IO::File; use Fcntl ':flock'; use Cwd; sub new{ my $class = shift; my $self = bless{}, $class; return eval{ my $file = $class.".pm"; $self->{POS} = tell DATA; $self->{BUF} = ''; read DATA, $self->{BUF}, 32; $self->{NR} = unpack "A32", $self->{BUF}; $self->{FH} = new IO::File; my $dir = getcwd(); $self->{FH}->open("$dir/$file", O_RDWR) or die "IO-Error: $!"; flock $self->{FH}, LOCK_EX or warn "Your system does not support flock"; $self; }; } sub nr{ my $self = shift; return $self->{NR}++; } sub DESTROY{ my $self = shift; $self->{FH}->seek($self->{POS}, 0); $self->{FH}->print(pack "A32", $self->{NR}); } 1; __DATA__ 124 Last edited: 2013-12-31 20:45:09 +0100 (CET) |