Dưới đây là một số Perl đơn giản để đếm số lần một giá trị xuất hiện trong một mảng. Điều này chạy mà không có bất kỳ cảnh báo nào.Khi nào thì Perl tự động khởi tạo biến?
use warnings;
use strict;
my @data = qw(1 1 2 3 4 5 5 5 9);
my %histogram;
foreach (@data)
{
$histogram{$_}++;
}
Khi cơ thể loop được thay đổi để
$histogram{$_} = $histogram{$_} + 1;
Perl cảnh báo "Sử dụng giá trị chưa được khởi tạo ngoài".
Điều gì đang xảy ra dưới mui xe? Tại sao giá trị được khởi tạo khi được cung cấp dưới dạng toán hạng cho toán tử ++ và uninitialized với toán tử +?
Trong khi cảnh báo không trực tiếp phá vỡ bản dựng, chúng vẫn cần được chú ý. – Svante