pourquoi est-ce que "print (...) interpreted as function" est un
avertissement ? Par exmple, est-ce que c'est « mal » d'écrire ?
print (($section eq $curr_sect)
? "<li id=\"navonecur\">$pages{$section}{'name'}</li>\n"
: "<li><a href=\"/~mpg$section\">$pages{$section}{'name'}</a></li>\n");
Si ce n'est pas « mal », y a-t-il un moyen de faire comprendre au
compilateur que c'est bien ce que j'ai voulu écrire et que c'est pas la
peine de me le signaler à chaque fois, merci ? (Un peu comme
« if ((a = b)) » en C, où les doubles parenthèses font généralement
comprendre au compilateur qu'on voulait en effet écrire « = » et
pas « == ».)
Merci,
Manuel.
Parce que certains codent :
print ($section eq $curr_sect) ? "egal" : "diff";
en croyant que ce sera interprété comme :
print(($section eq $curr_sect) ? "egal" : "diff");
alors que c'est en fait interprété comme :
(print($section eq $curr_sect)) ? "egal" : "diff";
Ce qui n'est pas du tout la même chose ! ;-)
> Si ce n'est pas « mal », y a-t-il un moyen de faire comprendre au
> compilateur que c'est bien ce que j'ai voulu écrire et que c'est pas la
> peine de me le signaler à chaque fois, merci ? (Un peu comme
> « if ((a = b)) » en C, où les doubles parenthèses font généralement
> comprendre au compilateur qu'on voulait en effet écrire « = » et
> pas « == ».)
Pour éviter le message d'avertissement, il suffit de ne pas mettre
d'espace entre 'print' et la parenthèse ouvrante...
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
> Parce que certains codent :
>
> print ($section eq $curr_sect) ? "egal" : "diff";
>
> en croyant que ce sera interprété comme :
>
Euh, oui, je faisais partie du "certains" jusqu'à il y a quelques
minutes :-) Mais ce qui m'avait surtout interpelé alors, c'était le
« useless use of string in void context ». Enfin je conçois qu'il y sans
doute des cas où on peut ne pas avoir la chance d'avoir un autre
avertissement après.
> Pour éviter le message d'avertissement, il suffit de ne pas mettre
> d'espace entre 'print' et la parenthèse ouvrante...
>
Merci.
Manuel.