Je suis toujours nouveau à Perl. Étant donné que commencent code> Les blocs sont exécutés pendant la compilation ne peuvent pas être une propagation de virus ou une perte de données de simplement la compilation? Est-ce que Perl fait quelque chose pour l'arrêter? Si oui, cela signifie que le code dans
commence code> Les blocs peuvent agir différemment en dehors de celui-ci? P>
3 Réponses :
Oui à toutes ces questions. L'Eclipse IDE était vulnérable à cela. Il discuté plus en détail ici . < P> Comme avec tous les logiciels, vous devriez éviter de télécharger et d'exécuter quelque chose à partir d'une source que vous ne faites pas confiance. CPAN est généralement digne de confiance; Bien que je ne sois pas au courant de quelqu'un libérant intentionnellement le code voyou sur CPAN, il est possible que cela soit arrivé. p>
Vous pouvez éviter d'exécuter le code lors de la compilation des chèques avec le $ ^ c Flag , par exemple: p>
Excellent point sur $ ^ C code>. Voici un lien vers l'entrée Perlvar pour cela: perdoc.perl.org/perlvar.html # $ < / a> ^ c
@DaoToad Votre lien a été cassé, j'ai donc édité la réponse à contenir un fonctionnement.
Notez que parfois c'est une fonctionnalité. Commencer les blocs à l'intérieur des modules MOD_PERL ne sont exécutés qu'une seule fois, lorsqu'ils sont chargés pour la première fois. Donc, vous avez une syntaxe simple à faire une initialisation au niveau de la page dans le même script et de le placer "près" du code qu'il aide. P>
Il est parfois utile de la même manière pour écrire un code d'initialisation compliqué que vous ne voulez pas mettre en haut d'un script. P>
Mais surtout, il est juste là pour la compatibilité thématique avec AWK. P>
C'est là pour beaucoup plus que de ressembler à Awk. Les blocs de début sont très utiles pour séquencer des choses.
N'est-ce pas exactement ce que j'ai dit? Il y avait beaucoup de texte avant la phrase que vous avez décidée de choisir ..
@Andy - Vous avez dit "principalement". Au cours de mes nombreuses années de développement de logiciels Perl, j'ai utilisé (et l'habitude de l'utiliser) commencent à des blocs pour un certain nombre de raisons sur des occasions de Miriad d'occasions et non une fois que j'ai vu qu'il utilisait "la compatibilité thématique avec awk".