Patrick Andrieu: Mein erstes kleines Modülchen...

Beitrag lesen

Hallo Struppi!

Vielen Dank für Kritik und Ratschläge!

Wie du gemerkt hast gibt es eine reine Perl Version, die sich überall einfach installieren läßt, wenn der Hoster sich weigert dieses zu installieren, wofür es aber keinen Grund gäbe, sondern das wäre eher Grund den Hoster zu wechseln. Wenn dieser Perl anbietet, sollte das installieren von CPAN Modulen zum Angebotsumfang gehören.

Ich denke da (ganz langsam) an einer (eigentlich lange überfälligen) Neufassung des GBs. Von den Usern (viele haben nie etwas mit Perl gemacht) kann ich nicht verlangen, dass sie Module installieren o.Ä. Dieses kleine Modülche soll 'web-lib.pl' ersetzen, und soll einfach mit ins cgi-bin oder ugb-Ordner kopiert werden.

Wie gesagt, bei 1und1 ist Date::Calc [1] installiert, vielleicht ist es bei anderen Hostern nicht der Fall.

Was mir zuerst auffällt, du nennst das Modul Date::Today, das package aber nur Today, es müßte auch Date::Today heißen.

OK, danke. Wird geändert.

Als nächstes, warum definierst du die Variabeln mit our?

Die drei »our«-Variablen sollen von main erreichbar sein:

mit my $VERSION:

C:\Perl\site\lib\Date>perl -w

use strict;  
use Today;  
print $Today::VERSION;

^Z
Use of uninitialized value in print at - line 3.

mit our $VERSION:

C:\Perl\site\lib\Date>perl -w

use strict;  
use Today;  
print $Today::VERSION;

^Z
0.1

Wobei... die Elemente von localtime kann ich eigentlich »my-en«.

Dann brauchst du kein HASH für die Wochentag und Monatsnamen, da reichen einfach Arrays.

Sind Hashes denn so viel weniger performant? Ich arbeite gerne mit Hashes... ;) Aber da Cheatah die Internationalisation eingebracht hat, werde ich mir hier etwas Neues überlegen müssen.

Das mit den Großbuchstaben ist zwar in Date::Calc auch so, es ist aber nicht die übliche Praxis.

Bei Date::Calc sind die Methodennamen explizit, von daher stört die Großschreibung hier nicht, finde ich.

Ich verwende für Funktionen immer Kleinbuchstaben, Funktionen mit Großbuchstaben wären Konstruktorfunktionen, die man aber üblicherweise nicht braucht in Perl, sondern dort sind es die package Namen. Aber das sind nur Konventionen, die viele anders handhaben.

Ja. Nur hätte eine »sub time« mit »time()« geclashed. Ansonsten gebe ich Dir Recht, und ich werde »Time« in »now« umbenennen (und »Year« in »year«) - klingt auch besser:

my $time = $Date::Today::now();  
my $short_time = $Date::Today::now('short');  
my $old_german_with_single_dot_time = $Date::Today::now('old'); # ;)

Und da du nicht mit Objekten arbeitest brauchst du die $today Parameter nie, d.h. du kannst sie wegschmeissen, entweder mit shift oder in dem du den wirklichen Parameter mit $_[1] abfragst.

Die werden an wenigen Stellen gebraucht, wenn eine Funktion den Rückgabewert einer anderen benötigt, z.B. in »sub rfc«:

return $today->Year."-$month-$day";

sub xTime {

shift;
  my $how = shift;
  my $printf = !$how ? '%02d:%02d:%02d' :
  $how eq 'short' ? '%02d:%02d' :
  $how eq 'old' ? '%02d.%02d Uhr' : 'Fehler'
  ;
  return sprintf $printf, $lhour, $lmin, $lsec;
}

  
Schöner Code, aber meine private leading\_zero-Sub finde ich auch ganz nett ;)  
  
  
  
[1] Das sind übrigens alle Date::-Module, die installiert sind:  
Date::Calc  
Date::Calc::Object  
Date::Calendar  
Date::Calendar::Profiles  
Date::Calendar::Year  
Date::Format  
Date::Language  
Date::Language::Afar  
Date::Language::Amharic  
Date::Language::Austrian  
Date::Language::Brazilian  
Date::Language::Chinese\_GB  
Date::Language::Czech  
Date::Language::Danish  
Date::Language::Dutch  
Date::Language::English  
Date::Language::Finnish  
Date::Language::French  
Date::Language::Gedeo  
Date::Language::German  
Date::Language::Greek  
Date::Language::Italian  
Date::Language::Norwegian  
Date::Language::Oromo  
Date::Language::Sidama  
Date::Language::Somali  
Date::Language::Swedish  
Date::Language::Tigrinya  
Date::Language::TigrinyaEritrean  
Date::Language::TigrinyaEthiopian  
  
  
Viele Grüße aus Frankfurt/Main,  
Patrick

-- 
![](http://www.atomic-eggs.com/fuernA.jpg)  
  
\_ - jenseits vom delirium - \_  
  
[[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash](http://www.atomic-eggs.com/)]  
Nichts ist unmöglich? [Doch!](http://www.atomic-eggs.com/cwi/cwi_4.shtml)  
Heute schon ge[gök](http://goek.atomic-eggs.com/goek_goek.html)t?
0 69

Mein erstes kleines Modülchen...

Patrick Andrieu
  • perl
  1. 0
    Cheatah
    1. 0
      Patrick Andrieu
      1. 0
        Cheatah
        1. 0
          Patrick Andrieu
    2. 0
      Patrick Andrieu
      1. 0
        Patrick Andrieu
  2. 0
    hotti
  3. 0
    hotti
    1. 0
      Patrick Andrieu
  4. 0
    Adolf
    1. 0
      Patrick Andrieu
      1. 0
        Adolf
        1. 0
          Patrick Andrieu
  5. 0
    Beat
    1. 0
      Patrick Andrieu
  6. 0
    Struppi
    1. 0
      Patrick Andrieu
      1. 0
        Struppi
        1. 0

          Mein erstes kleines Modülchen... und Grundsatzfragen!

          Patrick Andrieu
          1. 0
            Struppi
            1. 0
              Patrick Andrieu
  7. 0

    Mein erstes (nicht mehr so kleines) Modülchen...

    Patrick Andrieu
    1. 0
      Beat
      1. 0

        Anhang

        Beat
        1. 0
          Skrilax
          1. 0
            Beat
            1. 0
              Struppi
              1. 0
                Struppi
              2. 0
                Beat
                1. 0
                  Struppi
                  1. 0
                    Beat
                    1. 0
                      Struppi
                      1. 0
                        Beat
                        1. 0
                          Struppi
                          1. 0
                            Siechfred
                            1. 0
                              Struppi
                              1. 0
                                Siechfred
                          2. 0
                            Beat
                            1. 0
                              Struppi
      2. 0
        Patrick Andrieu
    2. 0
      Christoph
      1. 0
        Patrick Andrieu
        1. 0
          Christoph
          1. 0
            Patrick Andrieu
    3. 0
      Siechfred
      1. 0
        Patrick Andrieu
        1. 0
          Patrick Andrieu
          1. 0
            Tim Tepaße
        2. 0
          Harlequin
        3. 0
          Tim Tepaße
          1. 0
            Patrick Andrieu
            1. 0
              at
              1. 0
                Patrick Andrieu
                1. 0
                  at
            2. 0
              Tim Tepaße
              1. 0
                Patrick Andrieu
              2. 0

                Date::Today released and with POD

                Patrick Andrieu
                1. 0
                  Christoph
                  1. 0
                    Patrick Andrieu
  8. 0

    Kritik und Regel für Wochenzählung

    Patrick Andrieu
    1. 0
      Patrick Andrieu
      1. 0
        at
        1. 0
          Patrick Andrieu
    2. 0
      Patrick Andrieu
      1. 0
        Beat
        1. 0
          Patrick Andrieu
          1. 0
            Beat
            1. 0
              Patrick Andrieu