Schrift
[thread]7660[/thread]

Exportierte Variable hat keinen Wert



<< >> 4 Einträge, 1 Seite
Gast Gast
 2006-01-28 23:29
#62392 #62392
Mahlzeit!

Folgendes Problem: Ich will meine Datenbanklogin-Daten in eine extra Datei auslagern. So sieht meine pm-Datei aus:
-------------
#!c:\perl\bin\perl.exe -w

package db_data;

use strict;
use vars qw(@EXPORT_OK @ISA);
use Exporter;
@ISA = qw(Exporter);
@EXPORT_OK = qw($DB_URL $DB_USER $DB_PASSWD);

my $DB_NAME = "testdb";
my $DB_HORST = "localhost";
my $DB_PORT = "3306";
my $DB_USER = "Test";
my $DB_PASSWD = "Test";
my $DB_URL = "DBI:mysql:database=$DB_NAME;host=$DB_HORST;port=$DB_PORT";
-------

Da will ich mir die Dateien ausgeben lassen :

-------
#!c:\perl\bin\perl.exe -w

use strict;
use DBI;
use DBD::mysql;
use CGI::Carp qw(fatalsToBrowser);
use htmloutput;
use db_data qw($DB_URL $DB_USER $DB_PASSWD);

&htmloutput::printheader();

print "1: $DB_URL<br>";
print "2: $DB_USER<br>";
print "3: $DB_PASSWD<br>";

&htmloutput::printfooter();
--------

Also die Funktionen aus htmloutput,pm funktionieren. Aber im Browser sieht das so aus:

1:
2:
3:

Programmiern an sich kann ich nur C++, muss aber nun für nen Projekt an der Arbeit Perl lernen. Wäre also echt dankbar für jede Hilfe.

grüße...
GwenDragon
 2006-01-28 23:49
#62393 #62393
User since
2005-01-17
14533 Artikel
Admin1
[Homepage]
user image
So gehts ;)

Alle Variablen des Packages mit use vars qw () "voranmelden".

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package db_data;

use strict;
use vars qw(@EXPORT_OK @ISA);
use Exporter;
@ISA = qw(Exporter);
@EXPORT_OK = qw($DB_URL $DB_USER $DB_PASSWD);

use vars qw( $DB_NAME
$DB_HORST
$DB_PORT
$DB_USER
$DB_PASSWD
$DB_URL
);

$DB_NAME = "testdb";
$DB_HORST = "localhost";
$DB_PORT = "3306";
$DB_USER = "Test";
$DB_PASSWD = "Test";
$DB_URL = "DBI:mysql:database=$DB_NAME;host=$DB_HORST;port=$DB_PORT";

1;
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

renee
 2006-01-29 01:26
#62394 #62394
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
oder statt my einfach our benutzen. Lies Dir mal Wiki:use strict durch...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Strat
 2006-01-29 19:45
#62395 #62395
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
ich wuerde da schon use vars benuetzen, allerdings nach moeglichkeit in Kombination mit dem Modul Readonly...

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
use Readonly;
use vars qw($DB_NAME $DB_HORST $DB_PORT $DB_USER
$DB_PASSWD $DB_URL
);

Readonly $DB_NAME = "testdb";
Readonly $DB_HORST = "localhost";
Readonly $DB_PORT = "3306";
Readonly $DB_USER = "Test";
Readonly $DB_PASSWD = "Test";
Readonly $DB_URL = "DBI:mysql:database=$DB_NAME;host=$DB_HORST;port=$DB_PORT";

oder so aehnlich; das wuerde zwar mit our auch funktionieren:
Code: (dl )
Readonly our $DB_NAME = "testdb";

ich finde jedoch aus persoenlichen Gruenden das use vars in solchen faellen besser.
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 4 Einträge, 1 Seite



View all threads created 2006-01-28 23:29.