Thread Prüfung aktuelle Dateien (7 answers)
Opened by leissi at 2005-12-07 11:26

coax
 2005-12-07 23:11
#60749 #60749
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
use time::localtime;


das Modul heiszt korrekterweise Time::localtime, das macht zwar unter Windows keinen Unterschied, jedoch auf anderen Plattformen, also besser richtig!

Code: (dl )
1
2
3
4
5
6
my $parameterFile = "input/Main.cfg";                                         
open(IN, $parameterFile) || die "Paramterfile $parameterFile nicht gefunden!";  
my @par = <IN>;                                                                    
close(IN);

eval( join("\n", @par) );

Zum konfigurieren solltest du dir eine bessere Methode suchen eval ist da schlecht ( falsche Angaben in der Main.cfg haetten unvorhersehbare Fehler zufolge ).
Verwende entweder eine kleine ConfigParser-Routine die du selbst geschrieben hast oder viel, viel besser Module vom CPAN ( wie z.Bsp. in meinen Beispielcode mit Getopt::Long die Cmd-Parameter lesen).

Code: (dl )
1
2
3
4
5
6
7
8
9
10
my (@pjDomain,@pjName);

$pjDomain[0] = "ZITA_PKM";
$pjName [0]  = "Phoenix";

$pjDomain[1] = "ZITA_ATF";
$pjName [1]  = "ZITA_522";

$pjDomain[2] = "ZITA_ATF";
$pjName [2]  = "TLA";

Ich hab das mal in meinen Beispielcode ( siehe unten ) durch einen Hash ersetzt, wenn der im Realfall passender ist solltest du ihn auch in deinen Script verwenden.

Code: (dl )
my $backupPath = 'H:\\Perl\\BackupCheck\\_backup';

Weniger fehleranfaellig und viel leichter lesbar sind Slashes statt Backslashes (Escapen entfaellt).

Code: (dl )
1
2
3
if ( -e $bkupDirectory ) {
  print LogDatei "Verzeichnis ist vorhanden!\n";
  opendir(DIR,$bkupDirectory) or die "Kann $bkupDirectory nicht öffnen: $!\n";

Besser nicht nur auf die Existenz des Verzeichnisses pruefen, sondern auch dass es ein Verzeichnis ist!

Code: (dl )
1
2
   my @verzeichnisse = grep{-f $bkupDirectory .'/'.$_}
readdir(DIR);

Du greps Dateien, stopfst sie dann aber in dein Array names 'verzeichnisse' ?! ;)

Code: (dl )
my $age = (time - (stat($file))[10]) / (60 * 60 * 24);

Das erledigt bei mir ganz einfach der -M -Operator.
Code: (dl )
my $age = -M $file;        # file age in days


Grusz Christian.
,,Das perlt aber heute wieder...'' -- Dittsche

View full thread Prüfung aktuelle Dateien