W poniższym kodzie otrzymuję ostrzeżenie uninitialized value
, ale tylko w drugim przykładzie given/when
. Dlaczego to?given/when with undefined value
#!/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";
}
}
Wyjście pojawia się:
aw not defined
Use of uninitialized value $_ in pattern match (m//) at ./perl.pl line 20.
aw not defined
Czy powinien więc umieścić "zdefiniowany" na górze, aby to naprawić? – simbabque
@imbabque, tak, aby usunąć ostrzeżenie. – Qtax