2009-10-02 2 views

Antwort

13

Ja zu all diesen Fragen. Die Eclipse-IDE war dafür anfällig. Es discussed in more detail here.

Wie bei jeder Software sollten Sie das Herunterladen und Ausführen von Daten von einer Quelle, der Sie nicht vertrauen, vermeiden. CPAN ist im Allgemeinen vertrauenswürdig; Obwohl mir nicht bewusst ist, dass irgendjemand absichtlich falschen Code für CPAN veröffentlicht, ist es möglich, dass es passiert ist.

können Sie vermeiden, während der Kompilierung überprüft mit dem $^C flag, z.B .:

BEGIN { load_data_from_db() unless $^C; } 
+2

Hervorragender Punkt über '$^C'. Hier ist ein Link zu dem Perlvar-Eintrag dafür: http://perldoc.perl.org/perlvar.html#$^ C – daotoad

+0

@daotoad Dein Link war defekt, also habe ich die Antwort bearbeitet, um eine funktionierende zu enthalten. – Ether

1

Beachten Sie, dass manchmal ist ein Feature Ausführen von Code. BEGIN-Blöcke innerhalb von mod_perl-Modulen werden nur einmal ausgeführt, wenn sie zum ersten Mal geladen werden. Sie haben also eine einfache Syntax, um die Initialisierung auf Seitenebene im selben Skript durchzuführen und sie in die Nähe des von Ihnen unterstützten Codes zu setzen.

Gelegentlich ist es ähnlich nützlich, um komplizierten Initialisierungscode zu schreiben, den Sie nicht am Anfang eines Skripts platzieren möchten.

Aber meistens ist es nur da für thematische Kompatibilität mit awk.

+1

Es ist für viel mehr als nur awk. BEGIN-Blöcke sind sehr nützlich für die Sequenzierung von Dingen. –

+0

Ist das nicht genau das, was ich gesagt habe? Es gab ziemlich viel Text vor dem Satz, den du gewählt hast. –

+1

@Andy - du hast "meistens" gesagt. In meiner langjährigen Perl-Software-Entwicklung habe ich BEGIN-Blöcke aus einer Reihe von Gründen bei miriad-Anlässen benutzt (und gesehen), und nicht EINMAL habe ich gesehen, dass es "thematische Kompatibilität mit awk" verwendet hat. – DVK

Verwandte Themen