2012-01-04 28 views
5

Đối với đoạn mã sau, sự hiểu biết của tôi về $label = $classifier->{result}->{forcast}->[$i]->{label}; có đúng không?Làm thế nào để phân tích hash này của ví dụ băm?

1) kết quả được sử dụng làm khóa cho hàm băm của trình phân loại;

2) DỰ BÁO được sử dụng như chìa khóa cho ref hash của $ phân loại -> {kết quả}

3) $ phân loại -> {kết quả} -> {DỰ BÁO} là một ref để một mảng, và tôi -giá trị của mảng này cũng là một tham chiếu băm

4) Nhãn là khóa của giá trị tham chiếu băm $ -> {result} -> {forcast} -> [$ i]. Giá trị tương ứng được gán cho phía bên trái của $ label.

my $i=0; 
while (<classifierinput>) 
{ 
    $label = $classifier->{result}->{forcast}->[$i]->{label}; 
    $i++; 
} 
+0

Trình xác định classifier được xác định như thế nào? Mã này nghĩa vụ phải đạt được là gì? – Dave

+0

Hiểu biết của bạn là chính xác. Tôi sẽ chỉ thêm rằng giữa hai tập hợp các dấu ngoặc chỉ mục liên tiếp (hoặc mảng hoặc băm), mũi tên dereferencing là tùy chọn. Vì vậy, ví dụ của bạn có thể được viết '$ classifier -> {result} {forcast} [$ i] {label}' (mũi tên dereferencing đầu tiên không phải là tùy chọn vì nó không nằm giữa hai bộ ngoặc vuông). –

Trả lời

2

Vâng, hiểu biết của bạn là chính xác.

Các vấn đề liên quan