Matti Maekitalo: Wann `our', wann `use vars ...' verwenden?

Hallo,

ich habe eine Frage zur Variablendeklaration in Perl.

Ich habe mir (durch die Benutzung von strict) angewöhnt, meine Variablen zu deklarieren. Nun ist es aber für ein Projekt notwendig, ein paar globale Variablen zu haben (zT. weil es einfache Texte sind und ich die nicht an jede Prozedur übergeben will).

Nun gibt es da die Möglichkeiten
a) use vars qw($VARIABLE);  # und
b) our $VARIABLE;

Was macht den Unterschied? Frank und Christian benutzen bei ihren Scripten für den Server und für das Selfforum Variante a, b sehe ich insgesamte seltener. Sind vars-Variablen schneller als our-Variablen, weil sie zur Kompilierungszeit deklariert werden (durch das use, nur ne Vermutung)?

Tschö Matti

  1. Hallo,

    a) use vars qw($VARIABLE);  # und
    b) our $VARIABLE;

    Frank und Christian benutzen bei ihren Scripten für den Server und für das Selfforum Variante a, b sehe ich insgesamte seltener.

    Der Grund liegt wahrscheinlich daran, daß Variante a auch bei Perl Version <5.6 funktioniert, B allerdings erst ab 5.6.
    Ansonsten erfüllen IMHO beide den gleichen Zweck. Allerdings kann ich da nicht wirklich mitreden, da ich bisher mit meine Programmierstil weder A noch B benötigt habe.

    Grüße
      Klaus

    1. Hoi,

      a) use vars qw($VARIABLE);  # und
      b) our $VARIABLE;

      Frank und Christian benutzen bei ihren Scripten für den Server
      und für das Selfforum Variante a, b sehe ich insgesamte seltener.

      Der Grund liegt wahrscheinlich daran, daß Variante a auch bei Perl
      Version <5.6 funktioniert, B allerdings erst ab 5.6.

      Ganz genau.

      Ansonsten erfüllen IMHO beide den gleichen Zweck. Allerdings kann
      ich da nicht wirklich mitreden, da ich bisher mit meine
      Programmierstil weder A noch B benötigt habe.

      Nun, wenn du Module o. ae. schreibst, wirst du es spaetestens
      benoetigen: $VERSION sollte immer angegeben sein.

      Gruesse,
       CK