En Perl, la plupart de mes print
Les déclarations prennent la forme
print "hello." . "\n";
Existe-t-il un moyen agréable d'éviter de garder tous les embêtants " \n "qui traînent ?
Je sais que je pourrais créer une nouvelle fonction telle que myprint
qui ajoute automatiquement \n mais ce serait bien si je pouvais remplacer le système existant par un autre. print
.
10 votes
Si votre réponse inclut $\, veillez à ce qu'elle soit accompagnée d'une liste de mises en garde concernant la définition de variables globales à effet invisible. Bien qu'elle soit très intelligente et qu'elle réponde techniquement à la question, il est également très dangereux de la remettre sans qualification à un débutant.
1 votes
perldoc perlvar
décrit la plupart des mises en garde, pourquoi les répéter ici ?5 votes
@David, parce qu'un hacker aléatoire va chercher les réponses ici plutôt que dans perldoc, s'en contenter, et ne sera même pas au courant des avertissements !
3 votes
C'est exactement le genre de raisonnement bizarre qui a fait que mon fer à repasser porte une étiquette d'avertissement indiquant que je ne dois pas repasser les vêtements pendant que je les porte.
8 votes
Les outils de la vie réelle ont des limites physiques qui sont raisonnablement bien comprises par les personnes qui ont vécu leur vie dans le monde physique. Les outils logiciels ne sont soumis à aucune limite de ce type, et il n'y a pas de règles. Ils peuvent faire n'importe quoi et se comportent souvent en dehors des attentes, surtout pour les débutants qui n'ont pas encore appris les limites des attentes raisonnables.
1 votes
Pourtant, la plupart des gens s'accordent à dire que c'est une leçon inévitablement douloureuse dans le monde réel qu'un enfant va toucher un poêle chaud. Expliquez à cet enfant tout ce que vous voulez que les poêles sont chauds, mais a) l'enfant finira par toucher quelque chose de chaud et b) cette leçon l'emportera sur toutes les explications du monde. Peut-être que je fais trop l'analogie entre les poêles chauds et les variables Perl spéciales, mais personne ne respecte vraiment ces variables Perl spéciales avant d'avoir été brûlé une ou deux fois.
0 votes
@DavidM Ce n'est pas "les fers à repasser sont chauds", c'est "si vous laissez ce fer à repasser allumé trop longtemps, il brûlera la corde et déclenchera un incendie ; personne ne devrait utiliser ce fer à repasser car il présente un risque d'incendie". Si vous le tendez à quelqu'un en lui disant "voici un fer à repasser, il rendra vos chemises lisses", il s'attendra à ce qu'il soit aussi sûr que n'importe quel autre fer jusqu'à ce que sa maison brûle. Contrairement à la brûlure d'une main sur un fer à repasser chaud, les conséquences d'un fer à repasser défectueux, comme une variable globale abusive, sont inattendues, retardées et imprévisibles.
0 votes
@Schwern Je suppose que nous sommes d'accord pour ne pas être d'accord alors. Je pense que vous exagérez le pire cas d'utilisation de $\ (ou probablement de toute autre variable spéciale). Je suis d'accord sur le fait que je n'utiliserais pas $\ dans ce cas, mais il y a beaucoup d'occasions où la définition d'une variable spéciale rend un programme compliqué beaucoup plus simple.