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

Ermittlungsroutine optimieren



<< >> 2 Einträge, 1 Seite
frambo
 2003-09-29 17:42
#58713 #58713
User since
2003-09-22
16 Artikel
BenutzerIn
[default_avatar]
Hallo !

In meinen Programmen muss ich öfter Arrays durchsuchen und dabei neue Arrays erstellen, wobei die Einträge des ersten Arrays nur 1x vorkommen sollen. Also alles doppelte soll er rauswerfen. Das mache ich zur Zeit mit so einer Routine:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 @Abfrage = ("123","456","123","789");
@Liste = ();

for($z=0;$z <=$#Abfrage;$z++){

 $vorhanden = 0;

 foreach (@Liste){
  if ($Abfrage[$z] eq $_){
   $vorhanden = 1;
  }
 }

 if ($vorhanden == 0){
  push(@Liste, $Abfrage[$z]);
 }

}

print @Liste;

# Ausgabe -> 123456789


Irgendwie sieht mir die Routine aber zu umständlich aus. ???
Hat jemand ne Idee, wie ich die performanter oder wenigstens kürzer bekomme ?
dominicn
 2003-09-29 18:01
#58714 #58714
User since
2003-08-08
327 Artikel
BenutzerIn
[default_avatar]
kürzer ist das: (ob performanter musst du selbst testen)

Code: (dl )
1
2
3
4
my @abfrage = (123, 456, 123, 789);
my %zwischenspeicher = ();
@zwischenspeicher{@abfrage} = ();
print keys %zwischenspeicher;
\n\n

<!--EDIT|dominicn|1064844108-->
<< >> 2 Einträge, 1 Seite



View all threads created 2003-09-29 17:42.