1 2 3 4 5 6 7 8 9
#!/usr/bin/perl use strict; use warnings; use module::Modul1; print qq(Set-Cookie: test="Etwas Text" \r\n); print "Content-Type: text/plain\r\n\r\n"; print Funktion1();
1 2 3 4 5 6 7 8 9
package module::Modul1; use base 'Exporter'; our @EXPORT=qw(Funktion1); use module::Modul2; use Data::Dumper; sub Funktion1 { return Dumper({ Funktion2() }); } 1;
1 2 3 4 5 6 7 8
package module::Modul2; use base 'Exporter'; our @EXPORT=qw(Funktion2); use CGI::Cookie; sub Funktion2 { return CGI::Cookie->fetch(); } 1;
1
2
3
4
5
6
7
8
9
$VAR1 = {
'test' => bless( {
'value' => [
'"Etwas Text"'
],
'name' => 'test',
'path' => '/'
}, 'CGI::Cookie' )
};
QuoteIch denke der Kontakt zum CGI-Modul ist nicht mehr vorhanden ... aber wie kann man diese "Umgebungsdaten" an andere Module weitergeben?
1 2 3 4 5 6 7 8 9 10 11
package BasisModul; use CGI; sub new{ my $class = shift; my $self = bless{ CGI => CGI->new, }, $class; return $self; }
1 2 3 4 5 6 7
# in package BasisModul sub param{ my $self = shift; # Instanz return $self->{CGI}->param(@_); } # später dann einfach # $self->param();
1 2 3 4 5 6 7 8 9 10 11 12 13
package Foo; our @ISA = qw(BasisModul); # Erbschaft von der Basis use IO::File; # gebraucht wird ein FileHandler in foo() sub foo{ my $self = shift; my $fh = IO::File->new; # oder $self->{FH} = IO::File->new; # Vorsicht! Denke an bestehende Attrs! $fh->open(...); }
2012-04-26T08:14:56 GwenDragonCookie-Header auslesen bzw. setzen kann nur das shtml, nicht die eingebundenen Skripte.
Wenn die shtml-Seite die anderen Skripte parst, ist es schon zu spät für weitere Header.