"Thomas Albech" <thomas@albech.dk> writes:
> Jeg har flere Perl scripts der hverisær lytter på port 2000 på hver sin
> Half-Life server. Scriptet skriver outputtet til en fil, som har følgende
> navn: LXXYY
Z.log.
> XX = dag i måned
> YY = måned
>
Z = er et løbenummer (0000-9999).
Skal flere scripts skrive filer i samme directory? Lad være med det,
det er noget bøvl.
> Filerne skal gemmes i samme directory, men have
Z skal være fortløbende.
> Jeg havde en forestilling om at man kunne sætte en global variabel, hver
> gang en fil var skrevet til direcroriet, men der er måske en eller anden
> smart måde hvorpå Perl kan se nummeret (
Z) på den sidst skrevne fil og
> lægge en til.
>
Z skal nulstilles, hver gang man skifter døgn.
$dir = "path/to/dir";
($day, $month) = (localtime)[3,4];
$filename = sprintf "L%02d%02d", $day, $month + 1;
opendir DIR, $dir or die "opendir: $!";
@files = grep /^$filename/o, readdir DIR;
closedir DIR;
if (@nums) {
@nums = sort map { s/^L\d{4}(\d{4}).log/$1/; $_ } @files;
$new = $nums[$#nums] + 1;
}
else {
$new = 0;
}
$newfilename = sprintf "$filename%04d.log", $new;
--
Lars Balker Rasmussen "Woo hoo!?"