1
2
3
4
5
6
7
8
9
10
11
# anhängen
push($superway, shift $current_obj->node_list());
# vorstellen
unshift($superway, pop $current_obj->node_list());
#umgedreht anhängen
push($superway, shift(reverse $current_obj->node_list()));
#umgedreht vorstellen
unshift($superway, pop(reverse $current_obj->node_list()));
QuoteType of arg 1 to shift must be array (not subroutine entry) at osmCreateGPX.pl l
ine 242, near "))"
Type of arg 1 to push must be array (not private variable) at osmCreateGPX.pl li
ne 242, near "))"
Type of arg 1 to pop must be array (not subroutine entry) at osmCreateGPX.pl lin
e 246, near "))"
Type of arg 1 to unshift must be array (not private variable) at osmCreateGPX.pl
line 246, near "))"
Type of arg 1 to shift must be array (not reverse) at osmCreateGPX.pl line 251,
near "))"
Type of arg 1 to push must be array (not private variable) at osmCreateGPX.pl li
ne 251, near "))"
Type of arg 1 to pop must be array (not reverse) at osmCreateGPX.pl line 255, ne
ar "))"
Type of arg 1 to unshift must be array (not private variable) at osmCreateGPX.pl
line 255, near "))"
Execution of osmCreateGPX.pl aborted due to compilation errors.
Guest wershift push unshift usw funktionieren nur mit arrays.
1
2
perl -wE'package foo;use Moose;sub foo{return [qw(d e f)]};package main;my $f=foo->new();my @x;push @x, shift $f->foo();say $x[0]'
d
1 2 3 4 5 6 7 8 9 10 11
# anhängen push($superway, ($current_obj->node_list())[0]); # vorstellen unshift($superway, ($current_obj->node_list())[-1]); #umgedreht anhängen push($superway, (reverse $current_obj->node_list())[0]); #umgedreht vorstellen unshift($superway, (reverse $current_obj->node_list())[-1]);
QuoteEs ist aber jeweils der Eintrag der anzuhängenden bzw. vorzustellenden Eintrag entfernt werden der an die Basis-Liste anschließt (es geht um ID's).
QuoteDu möchtest ja einfach nur das erste oder letzte Element der Liste haben - das geht einfach mit [0] bzw. [-1].
2014-04-18T08:49:41 jan99hi !
danke - aber leider haben wir uns wohl etwas missverstanden an einer Stelle.
Aus meinem Satz
QuoteEs ist aber jeweils der Eintrag der anzuhängenden bzw. vorzustellenden Eintrag entfernt werden der an die Basis-Liste anschließt (es geht um ID's).
hast Du verstanden
QuoteDu möchtest ja einfach nur das erste oder letzte Element der Liste haben - das geht einfach mit [0] bzw. [-1].
Quotemir geht es darum das dort wo die anzuhängende / vorstellende Liste angefügt wird das erste bzw. letzte Element der anzuhängende / vorstellende Liste entfernt wird.
Quote$superway = [ qw(a b c d) ];
node_list liefert qw(c d e) zurück.
Im Ergebnis soll $superway folgendes enthalten: ...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
my $superway = [qw(a b c d)]; print "Superway = @$superway\n\n"; my @erg = @$superway; ############ # anhängen my $node_list = [qw(d e f g)]; print "node_list = @$node_list\n"; # erste Stelle von node_list wegwerfen shift @$node_list; # und dann nach superway einfügen push @erg, @$node_list; print "@erg\n"; ############## # vorstellen @erg = @$superway; $node_list = [qw(x y z a)]; print "node_list = @$node_list\n"; # letzte Stelle von node_list wegwerfen pop @$node_list; # und dann vor superway anfügen unshift @erg, @$node_list; print "@erg\n"; ##################### #umgedreht anhängen @erg = @$superway; $node_list = [qw(g f e d)]; print "node_list = @$node_list\n"; # letzte Stelle von node_list wegwerfen pop @$node_list; # und dann umgekehrt nach superway anhängen push @erg, reverse(@$node_list); print "@erg\n"; ####################### #umgedreht vorstellen @erg = @$superway; $node_list = [qw(a z y x)]; print "node_list = @$node_list\n"; # erste Stelle von node_list wegwerfen shift @$node_list; # und dann umgekehrt vor superway einfügen unshift @erg, reverse(@$node_list); print "@erg\n";
Quotepush on reference is experimental