31. January 2012 · Write a comment · Categories: perl, tech · Tags: ,

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.

Switch to our mobile site