Thread zum 1000 und 1x Liste... (9 answers)
Opened by jan99 at 2014-04-22 08:51

Raubtier
 2014-04-22 12:17
#174897 #174897
User since
2012-05-04
1054 Artikel
BenutzerIn

user image
2014-04-22T08:47:08 jan99
my $superway_id = osmtree_get_node_list_id($first_obj);
print "superway_id: ".$superway_id."\n";[/code]


$Skalar = @Array gibt die Array-Länge zurück, da habe ich ja richtig geraten.

(beachte auch: $skalar = (liste); gibt letztes Element der Liste zurück)

Vergleiche:
perl -wE'use Data::Dumper;sub x{my @arr=qw(a b c d); @arr}; my $a=x;say $a' und
perl -wE'use Data::Dumper;sub x{my @arr=qw(a b c d); @arr}; my @a=x;say Dumper \@a'

Habe ich also richtig geraten.

Quote
Wenn ich nun den Dumper mit dem \ erstelle:
Code: (dl )
print Dumper(\osmtree_get_node_list_id($first_obj))."\n";


Das mit dem \ ist natürlich nur für Arrays und Hashes sinnvoll, nicht für Aufrufe von Funktionen.

Offenbar sind die die Datentypen in Perl nicht klar. Variablen, die mit $ anfangen, sind Skalare (sind also genau ein Element). Variablen, die mit @ anfangen, sind Arrays, also eine Aufreihung von einfachen (skalaren) Variablen.

Bei Arrays: Die Variable $x[1] zum Beispiel ist genau ein Element, hier genau das zweite aus dem Array @x und fängt daher auch mit $ statt @ an.

View full thread zum 1000 und 1x Liste...