Ah,TIL.
As I always used
use strict; use warnings;
as something like muscle memory, I didn't know this.
As I always used
use strict; use warnings;
as something like muscle memory, I didn't know this.
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.)