2010-08-04 35 views
8

Có bất kỳ chức năng có sẵn trong Perl để kiểm tra các loại tài liệu tham khảo:Cách lấy loại tham chiếu?

my $ref=\@array; 

tôi cần để có được những loại tài liệu tham khảo như array bởi hàm.

+2

bản sao có thể có của [Làm cách nào để biết loại giá trị nào nằm trong biến Perl?] (Http://stackoverflow.com/questions/1731333/how-do-i-tell-what-type-of-value -is-in-a-perl-biến) – Ether

Trả lời

22

Sử dụng chức năng ref:

$ref_type = ref $ref; 

Giá trị trả về là một trong số: SCALAR, ARRAY, HASH, (tham chiếu đến chương trình con), GLOB (tham chiếu đến typeglob) và REF (tham chiếu đến tham chiếu).

Thực tế, ref chức năng có thể trả về nhiều giá trị hơn và trong trường hợp tham chiếu đến tên gói trả về đối tượng thay vì loại: http://perldoc.perl.org/functions/ref.html.

+7

Lưu ý tham chiếu đã được may mắn, ref() trả về tên gói, không phải kiểu dữ liệu nằm bên dưới. Trong những trường hợp như vậy, bạn có thể xem xét sử dụng các phương thức reftype và phương pháp may mắn của Scalar :: Util. – dwarring

+1

@snoopy Mặc dù, hầu hết thời gian nó hữu ích hơn để biết tên gói (lớp) của đối tượng. Và bạn không nên lộn xộn với các đối tượng bên trong bằng tay anyway. – slebetman

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