In the following code, I get a warning of uninitialized value
, but only in the second given/when
example. Why is this?
#!/usr/bin/env perl use warnings; use 5.12.0; my $aw; given ( $aw ) { when ( 'string' ) { say "string"; } when ( not defined ) { say "aw not defined"; } default { say "something wrong"; } } given ( $aw ) { when ( /^\w+$/ ) { say "word: $aw"; } when ( not defined ) { say "aw not defined"; } default { say "something wrong"; } }
The output I get is:
aw not defined Use of uninitialized value $_ in pattern match (m//) at ./perl.pl line 20. aw not defined
source share