91 |
Operator |
Operaţie efectuată |
Exemplu |
Rezultat |
++op |
pre-autoincrement |
$a=3;++$a; print('++$a = ',$a,"\n"); |
++$a = 4 |
|
$a=3;$res=++$a;print('$a = ',$a,' $res=++$a: ',$res,"\n"); |
$a = 4 $res=++$a: 4 |
|
op++ |
post-autoincrement |
$a=3;$a++; print('$a++ = ',$a,"\n"); |
$a++ = 4 |
|
$a=3;$res=$a++;print('$a = ',$a,' $res=$a++: ',$res,"\n"); |
$a = 4 $res=$a++: 3 |
|
= += |
atribuire pre-increment |
$a=3;$res=$a+=2; print('$a = ',$a,' $res=$a+=2: ',$res,"\n"); |
$a = 5 $res=$a+=2: 5 |
--op |
pre-autodecrement |
$a=3;--$a; print('--$a = ',$a,"\n"); |
--$a = 2 |
|
$a=3;$res=--$a; print('$a = ',$a,' $res=--$a : ',$res,"\n"); |
$a = 2 $res=--$a : 2 |
|
op-- |
post-autodecrement |
$a=3;$a--; print('$a-- = ',$a,"\n"); |
$a-- = 2 |
|
$a=3;$res=$a--; print('$a = ',$a,' $res=$a-- : ',$res,"\n"); |
$a = 2 $res=$a-- : 3 |
|
= -= |
atribuire pre-decrement |
$a=3;$res=$a-=2; print('$a = ',$a,' $res=$a-=2: ',$res,"\n"); |
$a = 1 $res=$a-=2: 1 |
Observaţie:
= =+ |
atribuire post-increment?? |
$a=3;$res=$a=+2;print('$a = ',$a,' $res=$a=+2: ',$res,"\n"); |
$a = 2 $res=$a=+2: 2 |
= =- |
atribuire post-decrement?? |
$a=3;$res=$a=-2; print('$a = ',$a,' $res=$a=-2: ',$res,"\n"); |
$a = -2 $res=$a=-2: -2 |
dar deoarece nu sunt licite operaţiile post-auto-increment şi post-auto-decrement, aceste secvenţe conduc doar la atribuiri multiple.
Secvenţă |
Motiv |
++$var1--; |
Nu este permisă în Perl. |
$var1 = 10; $var2 = $var1 + ++$var1; |
Conduce la diferite rezultate în implementări diferite ale Perl (spre exemplu, rezultatul poate fi 20,21, sau 22). |
Program |
Rezultat la consola text |
#!/usr/local/bin/perl $value = 0; while (++$value <= 5) { print("value is now $value\n"); } print("all done\n"); |
value is now 1 value is now 2 value is now 3 value is now 4 value is now 5 all done |
#!/usr/local/bin/perl $value = 0; while ($value++ <= 5) { print("value is now $value\n"); } print("all done\n"); |
value is now 1 value is now 2 value is now 3 value is now 4 value is now 5 value is now 6 all done |
© Cornel Mironel Niculae, 2003-2004
13-Nov-2009