Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]7714[/thread]

array über package ansprechen?



<< |< 1 2 >| >> 18 Einträge, 2 Seiten
Froschpopo
 2006-02-16 03:19
#63022 #63022
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
mod_perl mag kein "our" bzw "my" außerhalb von subs bzw im main-package.

wie kann ich denn jetzt das Array oder einen Hash "global" deklarieren?
Global bedeutet in meinem Fall nur für mein Script, also für das main-package, welches ich ja dann auch nicht benennen muss.

Vorher habe ich einfach oben im script geschrieben:
our @array = ();

wie lege ich denn das jetzt im main-package an?

soll ich @main::array = (); machen oder wie? irgendwie blick ich da noch nicht so ganz durch!
esskar
 2006-02-16 03:26
#63023 #63023
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Code: (dl )
use vars qw[ $var1 @var2 ];

?
esskar
 2006-02-16 03:35
#63024 #63024
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
oder muss man globale sachen nicht schon in dem startup script declarieren?
Froschpopo
 2006-02-16 03:54
#63025 #63025
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Cool thx! Muss ich dann die LISTEN noch irgendwie deklarieren?
also ich habe ja z.B.:

%vars = $cgi->Vars();

kann ich das dann einfach so machen?
Froschpopo
 2006-02-16 03:56
#63026 #63026
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
also strict meckert nicht... scheint wohl so zu sein! danke :)
pq
 2006-02-16 12:42
#63027 #63027
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=Froschpopo,16.02.2006, 02:54]Cool thx! Muss ich dann die LISTEN noch irgendwie deklarieren?
also ich habe ja z.B.:

%vars = $cgi->Vars();

kann ich das dann einfach so machen?[/quote]
also gerade diese variable würde ich *nicht* global machen!
die ändert sich bei jedem request, und gehört als lexikalische
variable in den handler.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Froschpopo
 2006-02-16 16:04
#63028 #63028
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
jeder seitenaufruf IST ja auch ein anderer request!
esskar
 2006-02-16 16:38
#63029 #63029
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=Froschpopo,16.02.2006, 15:04]jeder seitenaufruf IST ja auch ein anderer request![/quote]
aber dein script wird ja bei mod_perl nicht immer wieder interpretiert, wodurch du %Vars nur einmal setzt!
Froschpopo
 2006-02-16 16:55
#63030 #63030
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
und wie soll ich jetzt die Parameter von den Usern empfangen können???
Ich kann ja nicht jedesmal param() aufrufen! Ich habe sehr sehr viele Parameter, deshalb möchte ich ja ebend den Hash auslesen!
esskar
 2006-02-16 17:22
#63031 #63031
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
sowas kann man mit OO lösen.
aber ich kenn dein system nicht... im nicht OO könnte sowas so aussehen

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
sub start {
my %vars = $cgi->Vars();

if($vars{action} eq 'foo') { &foo(\%vars); }
# ...
}

sub foo {
my ($vars) = @_;

if($vars->{bar}) {
}
}
<< |< 1 2 >| >> 18 Einträge, 2 Seiten



View all threads created 2006-02-16 03:19.