Thread Cookie-Hash ist leer (CGI) (9 answers)
Opened by GwenDragon at 2010-10-27 14:14

GwenDragon
 2010-10-27 14:14
#142234 #142234
User since
2005-01-17
14806 Artikel
Admin1
[Homepage]
user image
Ich versuche gerade die Macke eines fremden Moduls im Zusammenhang mit Perls CPAN:CGI in einem CMS zu entwirren.

Relevanter Ausschnitt:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package cookies;

use CGI qw/:standard/;

my %cookies = ();

sub start {
  foreach ( cookie() ) {
    my %hash = cookie($_);
    $cookies{$_} = \%hash;
  }
  1;
}

sub get {
  my($name) = @_;
  return $name ? $cookies{$name} : \%cookies;
}

1;
start() wird immer auomatisch am Anfang nach einem require/import aufgerufen.
Mich irritiert nur der Code in Zeile 9.
Liefert die Methode CGI::cookie wirklich einen Hash zurück (oder war das 2003 mal so)?

Später wird das Cookie woanders so referenziert:
Code (perl): (dl )
1
2
3
if ($cookie = &cookies::get("url") ) {
  $pref_url ||= $cookie->{"url"};
}

//EDIT: Typo bei Parameter
Aus irgendeinem Grund liefert in Zeile 2 bei undefinierter $pref_url und gesetztem Cookie names url der Hash keinen Wert. SO wird er wohl im oben genannten Modul doch nicht korrekt gefüllt.

Sieht jemand, wo das Problem ist?
Last edited: 2010-10-27 14:34:49 +0200 (CEST)

View full thread Cookie-Hash ist leer (CGI)