‘use strict‘.
Are 2 aspecte:
1. Perl permite unui program crearea automata a variabilelor, in orice loc din program, fara a fi nevoie ca acestea sa fie declarate inainte. Aceasta facilitate foarte comoda pentru programator, este in acelasi timp o incredibila sursa de bug-uri intr-o aplicatie. Atunci cand folositi ‘use strict’ Perl va genera erori de fiecare data cand o variabila este folosita fara a fi declarata inainte.
Bad code:
$i = int rand(100);
print $i;
Good code:
my $i;
$i = int rand(100);
print $i;
2. Pentru ca Perl ofera mai multe moduri in care se poate realiza ceva, deseori incearca sa determine din context ce anume a vrut programatorul sa faca. Cateodata reuseste, alteori nu.
Exemplu:
$a = test_value;
print "Value: ", $a, "\n";
sub test_value { return "test passed"; }
In exemplul de mai sus, Perl va initializa variabila $a cu sirul de caractere test_value, nu cu rezultatul intors de functia test_value(), pentru ca:
- test_value nu este marcat corespunzator ca fiind apel de metoda, folosind ()
- la momentul interpretarii primei linii, Perl inca nu “stie” ca exista o metoda numita test_value();
Varianta corecta:
use strict;
sub test_value; #Se declara functia ce va fi definita mai tarziu
my $a = test_value();
print "Value: ", $a, "\n";
sub test_value { return "test_passed"; }
Inspiratie: de aici.
