Exemple de priorité des opérateurs Perl
Le tableau suivant répertorie tous les opérateurs de la priorité la plus élevée à la plus basse.
left terms and list operators (leftward)
left ->
nonassoc ++ --
right **
right ! ~ \ and unary + and -
left =~ !~
left * / % x
left + - .
left << >>
nonassoc named unary operators
nonassoc < > <= >= lt gt le ge
nonassoc == != <=> eq ne cmp ~~
left &
left | ^
left &&
left || //
nonassoc .. ...
right ?:
right = += -= *= etc.
left , =>
nonassoc list operators (rightward)
right not
left and
left or xor
Exemple
Essayez l'exemple suivant pour comprendre toutes les priorités des opérateurs Perl dans Perl. Copiez et collez le programme Perl suivant dans le fichier test.pl et exécutez ce programme.
#!/usr/local/bin/perl
$a = 20;
$b = 10;
$c = 15;
$d = 5;
$e;
print "Value of \$a = $a, \$b = $b, \$c = $c and \$d = $d\n";
$e = ($a + $b) * $c / $d;
print "Value of (\$a + \$b) * \$c / \$d is = $e\n";
$e = (($a + $b) * $c )/ $d;
print "Value of ((\$a + \$b) * \$c) / \$d is = $e\n";
$e = ($a + $b) * ($c / $d);
print "Value of (\$a + \$b) * (\$c / \$d ) is = $e\n";
$e = $a + ($b * $c ) / $d;
print "Value of \$a + (\$b * \$c )/ \$d is = $e\n";
Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -
Value of $a = 20, $b = 10, $c = 15 and $d = 5
Value of ($a + $b) * $c / $d is = 90
Value of (($a + $b) * $c) / $d is = 90
Value of ($a + $b) * ($c / $d ) is = 90
Value of $a + ($b * $c )/ $d is = 50