perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 28
Click for quality!




11.02.2012 / 12:02

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragGlobale Varibalen in externer Datei definieren
Seitenanfang
Hi leute ...

ich habe ein problem mit variablen-deklarationen.

Ich wollte einige Variablen in einer extra-datei definieren (common.pl) ... da ich diese varibalen in mehreren scripts wieder benötige und nicht immer wieder mit in die scripts reinschreiben will

aber bei mir kommt imemr der fehler

mein code:


#!/opt/bin/perl -w

use strict;

push (@INC, "dbk_funct");

do "common.cgi";

die common.cgi ist im ordner [aktueller_ordner]/dbk_funct/

aber immer wenn ich das ausführen will kommt der fehler:
Global symbol "$[variablenname]" requires explicit package name at ....

wenn ich

 use strict; 
rausnehme, kommt:

Name "main::[Variablenname]" used only once: possible typo

wie kann ich das Lösen?

Datum: 11.05.2005-11:25

Beitragre: Globale Varibalen in externer Datei definieren
Seitenanfang
Das ist ein sehr unsauberer Stil, da Du damit allen weiteren Programmen diese Variablennamen "verbietest"...

Es geht so:

package GlobalVars;

require Exporter;

our @ISA = qw(Exporter);
our @EXPORT = qw($testvar);

our $testvar = 'hallo';

1;

Skript:

#! /usr/bin/perl

use strict;
use warnings;
use lib qw(.);
use GlobalVars;

print $testvar,"\n";

Besser ist es so:Modul:

package GlobalVars;

require Exporter;

our @ISA = qw(Exporter);
our @EXPORT_OK = qw($testvar);

our $testvar = 'hallo';

1;

Skript

#! /usr/bin/perl

use strict;
use warnings;
use lib qw(.);
use GlobalVars qw($testvar);

print $testvar,"\n";

Der Unterschied besteht darin, dass der Programmierer explizit sagen muss, welche Variablen er importieren will. Deswegen die Variable in @EXPORT_OK und im Skript dann in den Klammern die zu importierenden Variablen nennen. So hält man den Namensraum "sauber"...

Datum: 11.05.2005-14:30

-






-
-