Christoph Schnauß: Irritation bei Datums-/Zeitangabe

hallo Leute ;-)

Ich wundere mich grade über eine klitzekleine Sache. In einigen PERL-Scripts habe ich zur korrekten (deutschsprachigen) Anzeige von DAtum und Uhrzeit folgende Zeilen drinstehen:
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime();
$thismon=(Januar,Februar,Maerz,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember)[$mon];
$time = sprintf '%d:%2.2d',$hour,$min;
$year += 1900;
$date = $mday.'. '.$thismon.' '.$year.', '.$time;

Das hab ich übrigens (glaube ich) irgendwo mal aus SELFHTML rauskopiert, und es funktioniert prima.

Mein "Problem" ist aber jetzt der Schalter -w. Bekanntlich schreibt man das in die shebang, wenn man deteilliertere Fehleranzeigen haben möchte. Wenn ich jetzt diesen Schalter drinhabe, bekomme ich regelmäßig sowas aufgeschrieben:
Name "main::wday" used only once: possible typo at gastb.pl line 26.
Name "main::isdst" used only once: possible typo at gastb.pl line 26.
Name "main::yday" used only once: possible typo at gastb.pl line 26.
Name "main::sec" used only once: possible typo at gastb.pl line 26.
Use of uninitialized value in read at gastb.pl line 38.

Lasse ich den Schalter weg, ist alles in Ordnung. Mein Script funktioniert mit oder ohne Schalter sowieso völlig korrekt.

Was wird denn da von diesem Schalter  -  dessen Nützlichkeit ich wahrhaftig nicht bestreiten möchte  -  angemeckert?

Grüße aus Berlin

Christoph S.

  1. Hi,

    Name "main::wday" used only once: possible typo at gastb.pl line 26.
    Name "main::isdst" used only once: possible typo at gastb.pl line 26.
    Name "main::yday" used only once: possible typo at gastb.pl line 26.
    Name "main::sec" used only once: possible typo at gastb.pl line 26.
    Use of uninitialized value in read at gastb.pl line 38.

    Lasse ich den Schalter weg, ist alles in Ordnung. Mein Script funktioniert mit oder ohne Schalter sowieso völlig korrekt.

    Meines wissens und meiner Erfahrung nach, kommt dieses used only once, wenn du eine Variable in einem Script nur einmal benutzt. Das soll verhindern, dass es durch einen Tippfehler eine Variable mehr gibt.
    Zu "use of uninitialized variable .."du benutzt kein use strict, oder? Ich würde sagen, du haßt eine Variable nicht mit my initialisiert, oder? Leider ist ja Zeile 38 nicht vorhanden.

    mfg Andres Freund

    1. Hi

      Zu "use of uninitialized variable .."

      hat IMHO nichts mit use strict zu tun, sondern nur, daß eine Variable zwar deklariert, aber nicht initialisiert wurde.

      Also z.B.  my §abc;      # deklariert aber nicht initialisiert
                 my $abc = 0;  # deklariert und initialisiert.

      Bye
      Timothy

      --
      Zwei Dinge im Leben kannst du nicht zurück holen. Den Pfeil, den du verschossen. Und das Wort, das du gesprochen.
      (alte indianische Weisheit)
      1. Hi,

        hat IMHO nichts mit use strict zu tun, sondern nur, daß eine Variable zwar deklariert, aber nicht initialisiert wurde.

        Stimmt, ich habe es gerade damit verwechselt:"Global symbol $foo requires explicit package name at foo.pl line 5.

        mfg Andres Freund