Schrift
[thread]7714[/thread]

array über package ansprechen? (Seite 2)



<< |< 1 2 >| >> 18 Einträge, 2 Seiten
pq
 2006-02-16 17:42
#63032 #63032
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
[quote=Froschpopo,16.02.2006, 15:04]jeder seitenaufruf IST ja auch ein anderer request![/quote]
ähm, schon klar.
das ändert aber nichts an der tatsache, dass sich die variable bei
jedem request ändert/ändern sollte.
würde ich nicht global machen. globale variablen sind unveränderliche
config-sachen. alles andere gehört als argument übergeben.
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 20:17
#63033 #63033
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
hmmmm... selbstverständlich ändern sich die variablen.
ich habe z.b. einen Array, den ich jedoch in verschiedenen subs ändere! Der Array beinhaltet dateien die ich zum start des scriptes einlese, jedoch mehrfach in verschiedenen subs bearbeite. Das wäre doch voll panne, müsste ich die datei in jeder sub neu einlesen! Kann man mod_perl nicht irgendwie mitteilen, welche variablen/listen global gelten sollen, deren inhalt jedoch dynamisch ist? Das muss doch irgendwie möglich sein!
pq
 2006-02-16 21:31
#63034 #63034
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
[quote=Froschpopo,16.02.2006, 19:17]Kann man mod_perl nicht irgendwie mitteilen, welche variablen/listen global gelten sollen, deren inhalt jedoch dynamisch ist? Das muss doch irgendwie möglich sein![/quote]
natürlich geht das. mit use vars. wurde ja auch schon gesagt.
das gilt aber nur für den einen prozess. wenn du über mehrere
prozesse daten teilen willst, musst du das mit sessions machen
oder shared memory.
frameworks bieten das meistens schon mit an, Apache::ASP z.b.\n\n

<!--EDIT|pq|1140118389-->
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 22:04
#63035 #63035
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
was hälste davon:
Code: (dl )
1
2
3
4
5
use vars qw[ %vars $key $var];

for (($key, $var) = $cgi->Vars()) {
$vars{$key} = $var;
}
pq
 2006-02-16 22:28
#63036 #63036
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
[quote=Froschpopo,16.02.2006, 21:04]was hälste davon:
Code: (dl )
1
2
3
4
5
use vars qw[ %vars $key $var];

for (($key, $var) = $cgi->Vars()) {
  $vars{$key} = $var;
}
[/quote]
$key und $var sind hier unnötigerweise global. deklarier sie mit my().
ansonsten empfehle ich weiterhin, $cgi oder %vars als hashref an die
subroutinen zu übergeben und nicht global zu machen.
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 22:43
#63037 #63037
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
[quote=esskar,16.02.2006, 16:22]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}) {
  }
}
[/quote]
das ist ne feine idee! Thanks a lot!
pq
 2006-02-17 11:56
#63038 #63038
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
[quote=Froschpopo,16.02.2006, 21:43][quote=esskar,16.02.2006, 16:22][...][/quote]
das ist ne feine idee! Thanks a lot![/quote]
sagte ich ja - übergib es als argument an subroutinen:
[quote=pq,16.02.2006, 16:42]alles andere gehört als argument übergeben.[/quote]\n\n

<!--EDIT|pq|1140170301-->
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
renee
 2006-02-17 12:37
#63039 #63039
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
manchmal muss man den Leuten halt zeigen wo's langgeht ;)
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< |< 1 2 >| >> 18 Einträge, 2 Seiten



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