/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
Deling af variabler mellem flere Perl scri~
Fra : Thomas Albech


Dato : 19-09-01 15:37

Hej NG,

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: LXXYYZ.log.
XX = dag i måned
YY = måned
Z = er et løbenummer (0000-9999).

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.

Systemet er en RH7.0

Jeg håber I kan forstå denne beskrivelse.

På forhånd tak,
Thomas Albech




 
 
Lars Balker Rasmusse~ (19-09-2001)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 19-09-01 18:17

"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: LXXYYZ.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!?"

Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409075
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste