Personnellement, j'ai commencé à utiliser $_ dès que j'ai appris le Perl il y a plus de 10 ans (le tuto avec lequel j'ai commencé le faisait, cela ne me posait pas de problème) et je continue à le faire très largement, je trouve cela très pratique. Mais je trouve aussi que les arguments de Philou sont loin de manquer de pertinence, et j'hésite assez souvent entre les deux solutions. Souvent, par exemple quand je lis un fichier, j'utilise souvent $_ dans un premier temps, parce qu'il me permet de réaliser facilement toute une série d'actions "techniques" (chomp, s///g, m//, lc, uc, length, split, etc.), puis je passe à une variable nommée quand je rentre dans la complexité fonctionnelle ou algorithmique. Je ne dis pas que ma solution est la bonne, mais juste que je suis plus à l'aise avec des variables nommées quand le fonctionnel ou l'algo deviennent compliqués. Même chose avec @_, $1, $2, etc., et un certain nombre d'autres variables de ponctuation, mais, franchement, quand je trouve du code utilisant des variables comme $(, $^p ou $^F, je suis obligé d'ouvrir la doc pour savoir ce qu'elles signifient. Dans ce cas, je préfère souvent leur donner un nom intelligible avant de les utiliser (ou éventuellement utiliser le module English).
Alors, là, je suis bien d'accord. C'est toute la difficulté.
C'est aussi mon avis, mais nous ne plaçons peut-être pas le curseur au même endroit... ;)
Non, non, pas mal placés, si tu as compris cela, je me suis sans doute mal exprimé. Il faut juste faire attention à qui on s'adresse. Sur un forum, par exemple, utiliser des concepts trop avancés face à un débutant risque de le faire fuir. Ou, dans ma boîte, quand j'utilise des concepts Perl relativement avancés, j'estime devoir au moins ne pas les compliquer avec des constructions syntaxiques plus ou moins mystérieuses ou magiques (même si elles peuvent être bien pratiques). Par exemple, si je décide de créer une fonction fabriquant dynamiquement d'autres fonctions parce que c'est vraiment utile pour mon programme, j'introduis un certain degré de complexité pour celui qui n'est pas habitué à ce genre de construction, je vais au moins essayer de simplifier l'environnement syntaxique pour éviter d'ajouter de la difficulté de compréhension. Mais là encore, toute la difficulté est de positionner le curseur.