4 ms·
One of the things that `use strict` does is enable `use strict "vars"`. use strict; no strict qw(vars); $foo = $bar; That's part of the reason `u
by b2gills 5y ago
One of the things that `use strict` does is enable `use strict "vars"`.
use strict;
no strict qw(vars);
$foo = $bar;
That's part of the reason `use strict` is recommended.
---
The other major reason is `"refs"`, which disable symbolic refs.
Honestly this is *THE* main reason I recommend `use strict`.
Symbolic refs are how you did arrays of arrays prior to Perl5. (Among other uses.)
use 4.0;
@a = 'b','c';
@b = (1, 2);
@c = (3, 4);
print $a[1]->[1], "\n"; # 4
That can be a security risk if an attacker can insert or change strings in `@a`.
It isn't (generally) needed anymore of course.
use 5.0;
my @a = ( \[1,2], \[3,4] );
print $a[1]->[1], "\n"; # 4
(The only reason `@b` and `@c` existed was to symbolically reference them.)