Skript mit Parametern als Parameter übergeben
Carsten Pieper
- perl
0 shev0 Struppi
Hallo zusammen!
Ich habe ein Skript basis.pl und ein weiteres skript daraufaufbauend.pl.
ich möchte nun gerne das skript daraufaufbauend.pl mit Parametern als Parameter an basis.pl übergeben, was ja intuitiv erstmal so geschehen würde:
basis.pl?parameter1=ausprägung1¶meter2=daraufaufbauend.pl?paramter1=ausprägung1¶meter2=ausprägung2¶meter3=ausprägung3&...
Nur führt das doppelte Fragezeichen natürlich zu einer Fehlermeldung und außerdem sit ja unklar, ob parameter3 zu basis.pl oder zu daraufaufbauend.pl gehört.
Wie kann ich basis.pl auf korrekte Art und Weise daraufaufbauend.pl mit Parametern übergeben?
Herzlichen Dank und einen schönen Abend noch,
Carsten
Hi
kann dir nit wirklich helfen, evtl magst du die Parameter in Form eines Array übergeben?
Dann kannst du aus dem Array die Daten auslesen und das wars dann schon
Ich habe ein Skript basis.pl und ein weiteres skript daraufaufbauend.pl.
ich möchte nun gerne das skript daraufaufbauend.pl mit Parametern als Parameter an basis.pl übergeben, was ja intuitiv erstmal so geschehen würde:
basis.pl?parameter1=ausprägung1¶meter2=daraufaufbauend.pl?paramter1=ausprägung1¶meter2=ausprägung2¶meter3=ausprägung3&...
Benutze required oder use.
Struppi.
Hallo,
Benutze required oder use.
naja, das ist nicht das, was ich will.
Ich habe hier ein Suchformular. Da wird erst geschaut in welchen Dateien überhaupt gesucht werden soll, je nachdem, welche Bereiche der Nutzer ankreuzt.
Dann werden die einzelnen Dateien und Datenbanken aufgemacht und durchsucht.
Dann werden die Fundstellen ausgegeben. Es werden also einem Skript (basis.pl) alle Fundstellen übergeben. Wenn in einer Datenbank etwas gefunden wurde, wird als Fundstelle (unter anderem) daraufaufbauend.pl übergeben.
Das Skript basis.pl baut nun aus den übergebenen Resultaten eine HTML-Seite mit den Suchergebnissen, und einer der Links dort ist eben wieder daraufaufbauend.pl.
Aber noch eine Frage: Wie genau kann ich von einem Skript ein anderes aufrufen, ohne die Resultate von dem aufgerufenen Skript in das aufrufende Skript einzubauen, das klappt bei mir weder mit use noch mit require?
Herzlichen Dank für die Antworten,
Carsten
Benutze required oder use.
naja, das ist nicht das, was ich will.
Doch, so wie du es beschriebst, willst du das.
Ich habe hier ein Suchformular. Da wird erst geschaut in welchen Dateien überhaupt gesucht werden soll, je nachdem, welche Bereiche der Nutzer ankreuzt.
Dann werden die einzelnen Dateien und Datenbanken aufgemacht und durchsucht.
Dann werden die Fundstellen ausgegeben. Es werden also einem Skript (basis.pl) alle Fundstellen übergeben. Wenn in einer Datenbank etwas gefunden wurde, wird als Fundstelle (unter anderem) daraufaufbauend.pl übergeben.
Du hast in jeder datei Zugriff auf die Parameter.
Datei: a.pl
if(CGI::param('aktion') == 'aktion1')
{
require 'aktion.pl';
doAktion1();
}
Datei: aktion.pl:
sub doAktion
{
my $var = CGI::param('meineParameter');
}
Das Skript basis.pl baut nun aus den übergebenen Resultaten eine HTML-Seite mit den Suchergebnissen, und einer der Links dort ist eben wieder daraufaufbauend.pl.
In einer HMTL Ausgabe, musst du dir die Parameter natürlich selber zusammen bauen.
Aber noch eine Frage: Wie genau kann ich von einem Skript ein anderes aufrufen, ohne die Resultate von dem aufgerufenen Skript in das aufrufende Skript einzubauen, das klappt bei mir weder mit use noch mit require?
wie gesagt alle in deinem Skript eingebundenen Module, haben zugriff auf die Parameter.
Struppi.
Du hast in jeder datei Zugriff auf die Parameter.
Datei: a.pl
my $counter = 112;
if(CGI::param('aktion') == 'aktion1')
{
require 'aktion.pl';
doAktion1();
}Datei: aktion.pl:
sub doAktion
{
my $var = CGI::param('meineParameter');
print $counter;
}
Funktioniert dann aber immer noch nicht, auch nicht wenn ich in aktion.pl
my $var2 = CGI::param('counter');
einbaue. Lässt sich auf eine Variable eines anderen Skriptes auch noch irgendwie zugreifen? dann wäre ich meinem Ziel nämlich schon ein ganz gehöriges Stückchen näher.
Herzlichen Dank schon jetzt,
Carsten
Datei: a.pl
my $counter = 112;
Das ist aber nicht wovon du am Anfang sprachst. Das ist eine variabel die du in der Datei a deklarierst.
if(CGI::param('aktion') == 'aktion1')
{
require 'aktion.pl';
doAktion1();
}Datei: aktion.pl:
sub doAktion
{
my $var = CGI::param('meineParameter');print $counter;
was spricht gegen:
sub doAktion
{
my $counter = shift;
Funktioniert dann aber immer noch nicht, auch nicht wenn ich in aktion.pl
my $var2 = CGI::param('counter');
einbaue. Lässt sich auf eine Variable eines anderen Skriptes auch noch irgendwie zugreifen? dann wäre ich meinem Ziel nämlich schon ein ganz gehöriges Stückchen näher.
Vielleicht wilst du einfach einen Funktionsparameter verwenden?
Struppi.