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

referenz bei letztem LISTENINDEX



<< >> 8 Einträge, 1 Seite
Froschpopo
 2006-02-16 03:02
#63014 #63014
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
ich hab nen array:

@array = ([1,2], [3,1], [5,2]...);

nun will ich den zweiten index der letzten arrayreferenz ändern, also des eintrages, an dem sich die schleife gerade befindet.

das mache ich bisher so:
Code: (dl )
1
2
3
4
5
$count = 0;
for(...) {
  push @array, [..., ...];
  $array[$count]->[1] = "test";
}

nun bin ich bequem wie ihr wisst. Am liebsten hätte ich gerne:

Code: (dl )
1
2
3
4
for(...) {
  push @array, [..., ...];
  $array[$#array]->[1] = "test";
}


gibt es sowas oder eine noch schnellere lösung als die erste?\n\n

<!--EDIT|Froschpopo|1140052055-->
esskar
 2006-02-16 03:08
#63015 #63015
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
du meinst so

Code: (dl )
$array[-1]->[1] = "test";
Froschpopo
 2006-02-16 03:10
#63016 #63016
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
ah danke :)!! Mal wieder Esskar... besten dank!
pq
 2006-02-16 12:40
#63017 #63017
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=Froschpopo,16.02.2006, 02:02]nun will ich den zweiten index der letzten arrayreferenz ändern, also des eintrages, an dem sich die schleife gerade befindet.

das mache ich bisher so:
[...]
nun bin ich bequem wie ihr wisst. Am liebsten hätte ich gerne:

Code: (dl )
1
2
3
4
for(...) {
  push @array, [..., ...];
  $array[$#array]->[1] = "test";
}


gibt es sowas oder eine noch schnellere lösung als die erste?[/quote]
was genau hast du für ein problem mit diesem code? es empfiehlt sich, wie
du sicherlich weißt, immer, die fehlermeldung, die du bekommen hast, hier zu posten.
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:58
#63018 #63018
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
ist das eigentlich sicher, dass der von push() inserierte eintrag IMMER am ende des array indexiert wird? Bei hashes gibt ja es ja manchmal ein total kuddelmuddel in der anordnung.
GwenDragon
 2006-02-16 17:21
#63019 #63019
User since
2005-01-17
14544 Artikel
Admin1
[Homepage]
user image
Quote
push ARRAY,LIST
Treats ARRAY as a stack, and pushes the values of LIST onto the end of ARRAY. The length of ARRAY increases by the length of LIST.

perlfunc Doku!
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

renee
 2006-02-17 00:23
#63020 #63020
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ist Dir eigentlich klar, was Dein Code macht??

Du fügst einem Array eine Arrayreferenz hinzu und änderst von dem gerade eingefügten Element den Wert.

Die zwei Codes machen das gleiche:
Code: (dl )
1
2
3
4
for(1..10) {
push @array, [$_, "irgendwas"];
$array[$#array]->[1] = "test";
}


und
Code: (dl )
1
2
3
for(1..10) {
push @array, [$_, "test"];
}


Vielleicht wolltest Du aber das:
Code: (dl )
1
2
3
4
for(1..10) {
push @array, [$_, "irgendwas"];
}
$array[-1]->[1] = "test";
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/
Froschpopo
 2006-02-17 05:02
#63021 #63021
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
letztes hat bereits bei mir anwendung gefunden weils am einfachsten ist :) im übrigen ist es meine absicht etwas an dem letzten, soeben zugefügten element, ändern. Da kommt nämlich noch einiges dazwischen
<< >> 8 Einträge, 1 Seite



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