[PERL] : Variabelen gebruiken uit config.inc met strict

Pagina: 1
Acties:

  • Wierdo_NL
  • Registratie: Mei 2000
  • Laatst online: 08-05 13:34
He mensen,

Op het werk zit ik met een probleem, en Perl is niet mijn goeiste taal.

Ik moet strict gebruiken, maar ik wil wel de variabelen uit de config file gebruiken, zodat ik maar op 1 plek de username en/of password hoef te wijzigen.
Zonder strict werkt het, maar "met" weigert hij.

De 2 scripts :
- config.inc met bijvoorbeeld $username en $password voor database connectie.
- script.pl met
code:
1
2
3
4
5
use strict;
my $installdir = "/home/PRODUCT/perl";
require("$installdir/include/myConfig.inc");

print $username;

There is a fine line between hobby and mentaldisorder


  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

Ik weet niks van perl eigenlijk maar kan het niet zijn dat je die $installdir op regel 3 netjes moet concatten aan die string ipv de var gewoon in de string moet zetten.

Dus:
code:
1
require($installdir."/include/myConfig.inc");

[ Voor 27% gewijzigd door Brakkie op 07-03-2005 16:49 ]

Systeem | Strava


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 10-05 05:42
De code an sich is gewoon goed. Definieer eens wat 'weigeren' inhoudt? Welke foutmeldingen krijg je, wat gebeurt er, wat had je verwacht, enzovoorts?

  • Wierdo_NL
  • Registratie: Mei 2000
  • Laatst online: 08-05 13:34
De variabelen die in de config.inc staan worden wel gevuld, maar ik kan ze niet buiten config.inc gebruiken, waardoor ik er niets aan heb.

Wat ik nu gedaan heb is het volgende :

In config.inc een functie gemaakt ReturnVars.
Deze returnt de variabelen die ik nodig heb.
Maarja als ik ga uitbreiden, moet ik de functie ReturnVars in include.inc aanpassen, waardoor alle scriptjes weer aangepast zouden moeten worden.

Ik wil dus eigenlijk gewoon een config.inc waar al mijn voorgedefinieerde variabelen in staan.
En die wil ik gebruiken in al mijn scripts die de variabelen nodig hebben, dus met een require ofzo.
Dit alles moet werken met strict.

Is dit mogelijk ?

There is a fine line between hobby and mentaldisorder


  • muba
  • Registratie: April 2002
  • Laatst online: 19-10-2013

muba

Prince of Persia!

$main::username = "theusername";

zou dat werken?

Of anders met hashes werken, dat is altijd wel flex :)

Reporter: Mister Gandhi, what do you think of western civilisation?
Gandhi: I think it would be a good idea


  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

Grappig dat perl 8)7 Heb zo'n idee dat je hier je antwoord wel moet kunnen vinden.

http://perlmonks.thepen.com/105446.html

[ Voor 4% gewijzigd door Brakkie op 08-03-2005 00:33 ]

Systeem | Strava


  • Wierdo_NL
  • Registratie: Mei 2000
  • Laatst online: 08-05 13:34
Yeps mensen, het werkt..
Gegeven tips hielpen mij tot de oplossing.

in config.inc staat :
code:
1
2
3
4
package main;
use strict;
$main::username;
$main::username = "username";


in main.pl staat :
code:
1
2
3
4
package main;
use strict;
require ('config.inc')
print $main::username;


Geweldig ! thnx

There is a fine line between hobby and mentaldisorder


  • Juup
  • Registratie: Februari 2000
  • Niet online
Om die config.inc nu de namespace "main" te geven is wel zeer ongelukkig gekozen. main is al de naam van de code in je .pl script (ook als deze pietje.pl had geheten). Waarom niet package config; ofzo?

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


  • muba
  • Registratie: April 2002
  • Laatst online: 19-10-2013

muba

Prince of Persia!

Huh? confic.inc heeft helemaal niet de namespace "main".
Hij plaatst zijn variable "username" alleen in main. En main, dat is het script waar de require instaat.


Edit:
Oh ik zie wat je bedoelt.
Ja, die 'package main' moet je echt even weghalen uit 'config.inc'.

[ Voor 30% gewijzigd door muba op 08-03-2005 15:13 ]

Reporter: Mister Gandhi, what do you think of western civilisation?
Gandhi: I think it would be a good idea


  • Wierdo_NL
  • Registratie: Mei 2000
  • Laatst online: 08-05 13:34
OK, dank u wijze mannen ! :)

There is a fine line between hobby and mentaldisorder

Pagina: 1