Schrift
[thread]10900[/thread]

$meinArray[1]++



<< >> 4 Einträge, 1 Seite
RalphFFM
 2007-11-26 22:58
#103083 #103083
User since
2006-11-16
258 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hab ne blöde Frage:
Wieso kann ich eigentlich den Ausdruck "$meinArray[1] + 1" nicht mit "$meinArray[1]++" abkürzen? Sonst rafft Perl doch auch alles Mögliche an Abkürzungen. :-|
Ist die Bindung von "++" wirklich so massiv stark, daß es sogar die [1] weglöst???
renee
 2007-11-26 23:10
#103084 #103084
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
RalphFFM+2007-11-26 21:58:52--
Hab ne blöde Frage:
Wieso kann ich eigentlich den Ausdruck "$meinArray[1] + 1"


Das verändert nicht den Wert des Elements...

Quote
nicht mit "$meinArray[1]++" abkürzen?


das schon...


Quote
Sonst rafft Perl doch auch alles Mögliche an Abkürzungen. :-|
Ist die Bindung von "++" wirklich so massiv stark, daß es sogar die [1] weglöst???



Du willst wahrscheinlich eher ++$meinArray[1] machen...

Der Unterschied liegt darin, *wann* der Wert um 1 nach oben gezählt wird...

Vergleiche:
Code (perl): (dl )
1
2
3
4
5
my $var = 1;

print '$var+1: ', $var+1,"\n", # Hier wird nix erhöht ($var bleibt 1)
    '$var++: ', $var++,"\n", # hier wird erst *nach* der Ausgabe um 1 erhöht (Bei Ausgabe: $var = 1; Nach Ausgabe: $var = 2)
    '++$var: ', ++$var,"\n"; # hier wird *vor* der Ausgabe um 1 erhöht ($var = 3)
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/
RalphFFM
 2007-11-26 23:42
#103085 #103085
User since
2006-11-16
258 Artikel
BenutzerIn
[Homepage] [default_avatar]
Code: (dl )
1
2
perl -e '$varA[2]="5"; $varB = $varA[2]++; print "$varB\n";'
5

Ich find das nich so gut ... :-(
(Oje, ich erinnere mich gerade, in C++ gibts ja auch solche Klöpse.)
renee
 2007-11-27 09:29
#103089 #103089
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
RalphFFM+2007-11-26 22:42:43--
Code: (dl )
1
2
perl -e '$varA[2]="5"; $varB = $varA[2]++; print "$varB\n";'
5

Ich find das nich so gut ... :-(
(Oje, ich erinnere mich gerade, in C++ gibts ja auch solche Klöpse.)



Wieso findest Du das nicht so gut? Wenn Du "6" in $varB haben willst und $varA auch hochgezählt werden muss, dann musst Du
Code: (dl )
1
2
perl -e '$varA[2]="5"; $varB = ++$varA[2]; print "$varB\n";'
5
machen.

Das ist in allen Sprachen (die Post- und Präfixinkrement haben) gleich.
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/
<< >> 4 Einträge, 1 Seite



View all threads created 2007-11-26 22:58.