Stefan: Script will meine Variablen nicht mehr ausgeben - Warum???

Hallo zusammen!

Hier das Problem-Script:

---

#!/usr/bin/perl

if (!($ENV{'QUERY_STRING'})) {&login;}
else {&goUrl;}

sub login {
print "Content-type: text/html\n\n";
print qq~
<form action="test.cgi" method="get">
Login: <input type="text" name="login"><br>
Passwort: <input type="password" name="pass"><br>
Url (Ohne http://): <input type="text" name="url"><br>
<input type="submit" value="submit">
~;
}

sub goUrl {
@info = split(/&/,$ENV{'QUERY_STRING'});
foreach $key (@info) {
($name,$value) = split(/=/,$key);
$moreinfo{"$name"} = $value;
}

==> print "Location:http://$moreinfo['login']:$moreinfo['pass']@$moreinfo['url']\n\n";

}

exit;

---

Wieso gibt mir das Script in der markierten Zeile (>==>) nur leere Felder für "login", "pass" und "url" aus?

Wer hilft mir weiter?

Schon mal danke.

Grüße

Stefan

  1. hi!

    ==> print "Location:http://$moreinfo['login']:$moreinfo['pass']@$moreinfo['url']\n\n";
    Wieso gibt mir das Script in der markierten Zeile (>==>) nur leere
    Felder für "login", "pass" und "url" aus?

    Vielleicht, weil man auf Hashs in Perl mit geschweiften Klammern und
    nicht mit eckigen zugreift:
      $moreinfo{'login'}, ...

    bye, Frank!

    1. ...vielleicht ;-)

      Das wars.

      Besten Danke

      ...und schon gehts weiter:
      Hättest Du für mich auch noch einen einfachen Tipp, wie ich bei dem Script "pass" aus der Adresszeile raus kriege, wie ich also method="get" ersetzen könnte?

      Gruß

      Stefan

      1. ...hab das "method=get-Problem" schon selbst gelöst.

        Vielen Dank nochmal

        und eine erfolgreiche Nacht.

        Gruß

        Stefan