7
votes

Un Perl commence-t-il à bloquer un virus ou perdre des données?

Je suis toujours nouveau à Perl. Étant donné que commencent 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 Les blocs peuvent agir différemment en dehors de celui-ci?


0 commentaires

3 Réponses :


13
votes

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é.

Vous pouvez éviter d'exécuter le code lors de la compilation des chèques avec le $ ^ c Flag , par exemple: xxx



1
votes

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.

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.

Mais surtout, il est juste là pour la compatibilité thématique avec AWK.


3 commentaires

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".