Paluda, etwas unschlüssig: Automatische Update Anzeige?

Beitrag lesen

Nochmals moin, moin!

Wenn Du CGI nutzen kannst, wird wohl auch SSI funktionieren. Bei meiner Lösung müßtest Du in eine Seite etwas einbauen wie
  Letztes Update: <!--#include virtual="/cgi-bin/update.pl"-->

Soweit klar...

Und so sähe das Skript /cgi-bin/update.pl aus:

benötigte Module einbinden

use File::stat;
use Time::localtime;

was sind des für Module?

Variable für die neueste Zeitangabe

$maxtimestamp = 0;

immer = 0?

#Dateien und Verzeichnisse, die fuer das Aenderungsdatum nicht beruecksichtigt werden sollen
@ignorieren       = (
                      "cgi-bin/counter.pl",
                      ".log"
                    );
for ($ignoriername=0; $ignoriername<=$#ignorieren; $ignoriername++)
{ $ignorierstring .= uc($ignorieren[$ignoriername])."|"; }
$ignorierstring = substr($ignorierstring, 0, length($ignorierstring)-1);
$ignorierstring =~ s///\//ig;
$ignorierstring =~ s/./\./ig;

kann ich weglassen... oder? entweder das oben oder das unten eingeben?

Alle Dateien in allen Verzeichnisse durchgehen

while ($startverzeichnis[$i])
{
  @direct = ();
  @direct = &Getdir($startverzeichnis[$i]);
  if (@direct)
  {
    foreach $datei (@direct)
    {
      $vollname = $startverzeichnis[$i]."/".$datei;
      if ((-r $vollname) && (not (-d $vollname)) && (not (-l $vollname)))
      { # wenn es sich um eine Datei handelt

# Timestamp lesen
 $filetime = stat($vollname)->mtime;

# Timestamp speichern, wenn die Datei nicht ignoriert werden soll  und es der bisher höchste ist
 if ($filetime > $maxtimestamp && !($vollname =~ /$ignorierstring/i)) {$maxtimestamp = $filetime}
      }
      if ((-d $vollname) && (not (-l $vollname)) && ($datei !~ /^./) && (-x $vollname))
      { # wenn es sich um ein Unterverzeichnis handelt, muß es ebenfalls betrachtet werden
 push(@startverzeichnis,$vollname);
      }
    }
  }
  $i++;
}

Kann ich das gleich so übernehmen? Macht es da alles automatisch? Da habe ich nämlich null Ahnung von.

Timestamp in Zeitpunkt-Angabe umwandeln

$date_string = ctime($maxtimestamp);

Monatbezeichnungen durch numerische Werte ersetzen

$date_string =~ s/Jan/01/;
$date_string =~ s/Feb/02/;
$date_string =~ s/Mar/03/;
$date_string =~ s/Apr/04/;
$date_string =~ s/May/05/;
$date_string =~ s/Jun/06/;
$date_string =~ s/Jul/07/;
$date_string =~ s/Aug/08/;
$date_string =~ s/Sep/09/;
$date_string =~ s/Oct/10/;
$date_string =~ s/Nov/11/;
$date_string =~ s/Dec/12/;

muss ich hier noch was dran ändern/modifizieren?

Zeitpunkt-Angabe in Bestandteile aufsplitten

@Zeit = split(/ +/,$date_string);

Tagesdatum stets 2-stellig

if ($Zeit[2] < 10) { print "0"; }

relevante Bestandteile und trennende Punkte ausgeben

print "$Zeit[2].$Zeit[1].$Zeit[4]";

wie oben...

Unterverzeichnis bearbeiten

sub Getdir
{
  my ($verzeichnissname) = $_[0];
  my @dirent ="";
  if (-d $verzeichnissname)
  {
    if (not (-r $verzeichnissname)) { return ""; } # Verzeichnis nicht lesbar
    if (-l $verzeichnissname)       { return ""; } # keinen Links folgen
    opendir(DH,$verzeichnissname);
    @dirent = sort grep(!/^./, readdir(DH));
    closedir DH;
    return @dirent;
  }
  else { return ""; }
}

Was mach ich hiermit?