2010-05-20 46 views

Trả lời

14
$length = scalar(@{ $data{host} }); 
+1

và họ nói cú pháp Perl là phức tạp (cho biết anh chàng đang sử dụng Perl kể từ v2.x) – msw

+0

Tôi luôn nói với mọi người rằng Perl đứng trước thời gian của nó :-) – Cfreak

+5

Không cần 'scalar'. '$ length = @ {$ data {host}}' cũng đã hoạt động tốt. – Zaid

1

trả lời thêm vào tài khoản của msw's comment:

use autobox::Core; 
# ... 
$data{host}->length; 

này hoạt động giống như câu trả lời của Cfreak, ngoại trừ với cú pháp ít phức tạp, với chi phí của việc sử dụng một mô-đun.

Tôi có luận án rằng hầu hết các khiếu nại hợp pháp về Perl có thể được trả lời đơn giản với »Nó không cần phải như vậy!« và hài lòng với bản tóm tắt ngắn từ CPAN.

0

Nếu bạn muốn chỉ số cuối cùng, bạn có thể sử dụng: $ # @ $ {{dữ liệu máy chủ}}

Rõ ràng, độ dài của mảng là cuối cùng chỉ số + 1. Sử dụng ký hiệu này khi nó là khó khăn hơn để đạt được ngữ cảnh vô hướng, hoặc khi bạn đặc biệt muốn độ dài-1. Ví dụ:

0 .. $ # $ {{dữ liệu máy chủ}} # trả về một danh sách tất cả các chỉ số của mảng

Đôi khi hữu ích.

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