Die Empfehlung in Code Complete ist wichtig für die Sprache wie C, denn wenn man
int f(void) {
int counter;
}
der Wert counter
haben ist, was auch immer, dass der Speicher zu besetzen geschieht.
In Perl, wenn Sie deklarieren eine Variable mit
my $counter;
gibt es keinen Zweifel, dass der Wert von $counter
ist undef
nicht einige zufällige Müll.
Daher ist die Motivation hinter der Empfehlung, d. H. Sicherzustellen, dass alle Variablen mit bekannten Werten beginnen, in Perl automatisch erfüllt und es ist nicht notwendig, etwas zu tun.
Was Sie mit Zählern tun, ist, sie zu erhöhen oder zu verringern. Das Ergebnis von:
my $counter;
# ...
++ $counter;
ist in Perl gut definiert. $counter
enthält den Wert 1
.
Schließlich würde ich argumentieren, dass in den meisten Fällen Zähler in Perl nicht erforderlich sind und Code, der ausgiebig Zählervariablen verwendet, möglicherweise neu geschrieben werden muss.
Das Initialisieren von Variablen auf undef ist immer noch eine Initialisierung. – zigdon
Darf ich fragen, warum Sie das tun möchten? – Zaid
@Zaid: Die ganze Geschichte - Ich lese Code Complete (die erwähnt, immer Variablen während der Deklaration initialisiert, wenn möglich) und schaute auf eine meiner alten Dateien, die eine Menge von Zählern verwendet, die ich initialisiert hatte auf Null aber später entfernt alle unnötigen Initialisierungen. Ich denke darüber nach, alle Initialisierungen wieder einzuführen und stelle diese Frage, um einen besseren Weg zu finden, dies zu tun. – Lazer