[perl] parameters

Pagina: 1
Acties:

  • Vinzzz243
  • Registratie: Februari 2001
  • Laatst online: 22-01-2025
Ik kom er niet meer uit...

ik roep via do een .pl bestand aan, maar wil hieraan een variabele meegeven.

Hoe codeer ik dat? en hoe gebruik ik die parameter in dat bepaalde .pl bestand?

jah, ge-googled, ge-searched

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 10:35
Op donderdag 23 mei 2002 01:30 schreef Vinzzz het volgende:
jah, ge-googled, ge-searched
Ik geloof er niets van. Ik heb twee woorden voor je: "man perlfunc".

  • Vinzzz243
  • Registratie: Februari 2001
  • Laatst online: 22-01-2025
al gedaan, vind daarop:
code:
1
http://domain/path/script.pl?var1=num1&var2=num2&var3=num3

maar dit wil niet werken (misschien omdat ik het binnen een andere .pl aanroep)

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 10:35
x.pl:
code:
1
2
$abc='test';
do 'y.pl';

y.pl:
code:
1
print "[$abc]";

Of begrijp ik je probleem nu verkeerd?

  • Vinzzz243
  • Registratie: Februari 2001
  • Laatst online: 22-01-2025
kijk het kan zo:

aanroep.pl
code:
1
2
3
4
$var1 = '1';
do 'maak.pl';
$var1 = '2';
do 'maak.pl';

maak.pl:
code:
1
2
print MAIL "To: $var1";
return 1;

maar niet echt mooi programmeren, ik wil 1 regel om die maak.pl aan te roepen MET een parameter...dus iets als
code:
1
2
do 'maak.pl?var1=1';
do 'maak.pl?var1=2';

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 10:35
Op donderdag 23 mei 2002 01:46 schreef Vinzzz het volgende:
kijk het kan zo:
[..]
Exactly my point.
maar niet echt mooi programmeren, ik wil 1 regel om die maak.pl aan te roepen MET een parameter...dus iets als
code:
1
2
do 'maak.pl?var1=1';
do 'maak.pl?var1=2';
Waarom is dat mooier?

Dan moet je dus voor elke mogelijke datastructuur een codering verzinnen, de datastructuur in kwestie omzetten in een string (rekening houdend met niet-toegestante tekens als vraagtekens en =jes), deze nog eens coderen zodat je vraagtekentjes enzo kloppen, vervolgens weer decoderen om uiteindelijk die variabelen zo in te kunnen stellen die altijd al in je scope stonden. Sorry, maar dat slaat naar mijn mening nergens op.

Als je het echt wilt, roep dan de perl interpreter aan (met system of backticks).

Verder is meerdere keren dezelfde filen do'en een slecht idee aangezien het bestand dan elke keer opnieuw geparsed, gecompileerd en geexecuteerd moet worden. Dan kun je beter whatever het scriptje doet in een functie gooien en die functie elke keer aanroepen.

  • Vinzzz243
  • Registratie: Februari 2001
  • Laatst online: 22-01-2025
het gaat om een emailbestand. Wanneer op een form GEEN email is opgegeven, hoeft het bestand niet te worden aangeroepen.

Is dit wel opgegeven, dan moet het bestand 2x worden aangeroepen omdat het bestand email moet versturen naar 2 verschillende adressen

Verwijderd

zo van je get en post vars af:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
if ($ENV{"REQUEST_METHOD"} eq 'GET') { $buffer = $ENV{'QUERY_STRING'}; }
else { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); } 

      @pairs = split(/&/, $buffer); 

      foreach $pair (@pairs) {
            ($name, $value) = split(/=/, $pair); 

            $value =~ tr/+/ /;
            $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; 

            $FORM{$name} = $value;
      }

en zo wordt ?var1=waarde
$FORM{'var1'}

  • Vinzzz243
  • Registratie: Februari 2001
  • Laatst online: 22-01-2025
maar ik spreek hem niet aan uit een webpagina, maar vanuit een .pl. Moet ik dan toch FORM gebruiken...ga het nu es proberen

edit:
ut werkt niet
Pagina: 1