Schrift
[thread]5915[/thread]

Länge eines Arrays im Hash: herausfinden (Seite 2)

Leser: 2


<< |< 1 2 3 >| >> 23 Einträge, 3 Seiten
Ronnie
 2003-11-21 14:11
#72202 #72202
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
[quote=pktm,20.11.2003, 17:29]Wobei LETZTERARRAYWERT die Indexnummer scalar(@{ $navs{$_} }) hat.
Und wieso geht das dann nicht?[/quote]
Die Array-Länge ist um eins größer als der letzte Index, da der Index mit Null anfängt zu zählen!
Crian
 2003-11-21 16:08
#72203 #72203
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
nimm doch $#{ $navs{$_} }
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Ronnie
 2003-11-21 16:20
#72204 #72204
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
s.o.
EDIT1: s.o. -> siehe oben. Strat hatte schon daraufhingewiesen, und in dem Beispiel-Code habe ich es auch so verwendet.\n\n

<!--EDIT|Ronnie|1069425781-->
Crian
 2003-11-21 16:40
#72205 #72205
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
?

$# ist doch genau für diesen Zweck da


Ich versteh irgendwie sowieso nicht ganz, wo das Problem ist... vielleicht sollte nochmal der problematische COde (gut zusammengefasst) gepostet werden.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Thorium
 2003-11-21 16:55
#72206 #72206
User since
2003-08-04
232 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=pktm,20.11.2003, 17:29]Geht immernochnicht.
Also ich habe einen Hash der als Keys die Anzahl der gefu
Code: (dl )
1
2
3
my $navs = (
 1 => qw(1 2 3 4 5),
);
[/quote]
Du willst Hashes, wenn du die Referenz in einem Skalar speichern willst, mit geschweiften Klammern umschliessen.
Ungefähr so:

Code (perl): (dl )
1
2
3
my $ref = {
  "1" => [ 'Array', 1, 'Array', 2 ]
}


Wenn du dies nicht tust, gibst du das Array in Skalarem Kontext zurück, also die Anzahl der Elemente die du definieren wolltest.. Und das willst du nicht :D

Und dann:
Code (perl): (dl )
my $elements = scalar(@{$ref->{"1"}});


HTH
Per|li|nist der; -en, -en <zu ↑...ist>: a) Anhänger, Vertreter der radikalen Perlinisten die Perl als die einzig wahre Sprache ansehen; b) Mitglied einer perlinistischen Community.
Ronnie
 2003-11-21 19:53
#72207 #72207
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
EDIT1: gelöscht - erst denken dann posten...\n\n

<!--EDIT|Ronnie|1069437411-->
Dubu
 2003-11-22 11:32
#72208 #72208
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=pktm,20.11.2003, 17:29]
Code: (dl )
1
2
3
my $navs = (
1 => qw(1 2 3 4 5),
);


Jetzt muss ich an den letzten Wert des Arrays rankommen.
[/quote]
Code: (dl )
$navs{1}[-1];
pq
 2003-11-24 10:18
#72209 #72209
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=Dubu,22.11.2003, 10:32][quote=pktm,20.11.2003, 17:29]
Code: (dl )
1
2
3
my $navs = (
   1 => qw(1 2 3 4 5),
);

Jetzt muss ich an den letzten Wert des Arrays rankommen.
[/quote]
Code: (dl )
$navs{1}[-1];
[/quote]
nicht wirklich. $navs ist hier ein skalar mit dem wert 5. aber das wurde ja
schon gesagt...
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
Crian
 2003-11-24 11:21
#72210 #72210
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
[quote=Ronnie,21.11.2003, 15:20]s.o.
EDIT1: s.o. -> siehe oben. Strat hatte schon daraufhingewiesen, und in dem Beispiel-Code habe ich es auch so verwendet.[/quote]
stimmt - sorry ... in diesem Thread ist irgendwie der Wurm drin ...

[quote=pq,24.11.2003, 09:18][quote=Dubu,22.11.2003, 10:32][quote=pktm,20.11.2003, 17:29]
Code: (dl )
1
2
3
my $navs = (
   1 => qw(1 2 3 4 5),
);

Jetzt muss ich an den letzten Wert des Arrays rankommen.
[/quote]
Code: (dl )
$navs{1}[-1];
[/quote]
nicht wirklich. $navs ist hier ein skalar mit dem wert 5. aber das wurde ja
schon gesagt...[/quote]
Dubu hat bestimmt einfach die runden Klammern als geschweifte bzw. das $ als % gelesen, habe ich auch erst.

Code: (dl )
1
2
3
4
5
my $navs = {
   1 => qw(1 2 3 4 5),
};

$navs->{1}[-1];


oder

Code: (dl )
1
2
3
4
5
my %navs = (
   1 => qw(1 2 3 4 5),
);

$navs{1}[-1];
\n\n

<!--EDIT|Crian|1069665859-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
pq
 2003-11-24 12:00
#72211 #72211
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=Crian,24.11.2003, 10:21]
Dubu hat bestimmt einfach die runden Klammern als geschweifte bzw. das $ als % gelesen, habe ich auch erst.

Code: (dl )
1
2
3
4
5
my $navs = {
   1 => qw(1 2 3 4 5),
};

$navs->{1}[-1];


oder

Code: (dl )
1
2
3
4
5
my %navs = (
   1 => qw(1 2 3 4 5),
);

$navs{1}[-1];
[/quote]
auch nicht wirklich. in beiden fällen ist der wert des hash-keys '1',
da:
%navs = (1 => qw(1 2 3 4 5))
gleich
%navs = (1 => 1, 2, 3, 4, 5)
gleich
%navs = (1 => 1, 2 => 3, 4 => 5)
ist. lösung ist, wie schon gesagt, eine array-referenz [ qw() ]
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
<< |< 1 2 3 >| >> 23 Einträge, 3 Seiten



View all threads created 2003-11-19 22:13.