Trong mã sau, tôi nhận được cảnh báo uninitialized value
, nhưng chỉ trong ví dụ given/when
thứ hai. Tại sao điều này?được cung cấp/khi có giá trị không xác định
#!/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";
}
}
Kết quả tôi nhận được là:
aw not defined
Use of uninitialized value $_ in pattern match (m//) at ./perl.pl line 20.
aw not defined
Vì vậy, anh ta nên đặt kiểm tra 'đã xác định' ở trên cùng để sửa lỗi này? – simbabque
@simbabque, có điều đó sẽ xóa cảnh báo. – Qtax