Christian Kruse: Variable our & use vars

Beitrag lesen

Hoi,

[...]

Naja das funktioniert auch soweit (bis auf das -w mir einige
Warnings ausgibt).

Kein Wunder ;-)

Nun ist mir aber nicht ganz klar was use vars genau macht ?

'use vars' ist dasselbe wie 'our', nur aus einer aelteren
Perl-Version. 'our' wurde erst mit Perl 5.6.0 eingefuehrt. Die
richtige Anwendung von 'use vars' waere:

use vars qw($GLOBALVAR1 $GLOBALVAR2 $GLOBALVARn);

Das entspricht

our ($GLOBALVAR1, $GLOBALVAR2, $GLOBALVARn);

Denn es funktioniert auch, wenn ichs draussen lasse.

Siehe oben.

Und meine zweite Frage ist, warum ich our $x auch in 2.pl
schreiben muss ? Es wurde doch schon im ersten als our
deklariert ?

Weil es einen anderen Namespace hat. Lass das 'our $x' weg und
schreib stattdessen

$main::x

wenn du damit arbeiten willst. Alternativ geht auch '$::x', was ich
persoenlich aber fuer eher ekelig halte. Du kannst auch ein
richtiges Modul schreiben und die Variable in den Namespace
des Scripts exportieren, siehe dazu aber perldoc perlmod.

Gruesse,
 c.j.k