2010-08-04 12 views
8

क्या संदर्भ प्रकार की जांच करने के लिए पर्ल में कोई फ़ंक्शन उपलब्ध है:संदर्भ के प्रकार कैसे प्राप्त करें?

my $ref=\@array; 

मुझे फ़ंक्शन द्वारा array के रूप में संदर्भ प्रकार प्राप्त करने की आवश्यकता है।

+2

संभावित डुप्लिकेट [मैं कैसे बता सकता हूं कि पर्ल वैरिएबल में किस प्रकार का मान है?] (Http://stackoverflow.com/questions/1731333/how-do-i-tell-what-type-of-value -इस-इन-ए-पर्ल-वेरिएबल) – Ether

उत्तर

22

समारोह का प्रयोग करें रेफरी: SCALAR, ARRAY, HASH, कोड (Subprogram के संदर्भ में), GLOB (:

$ref_type = ref $ref; 

वापसी मान में से एक है टाइपग्लोब) और आरईएफ (संदर्भ संदर्भ) के संदर्भ में।

दरअसल, रेफ फ़ंक्शन अधिक मान वापस कर सकता है और ऑब्जेक्ट रिटर्न के संदर्भ में पैकेज नाम का प्रकार टाइप करने के बजाय: http://perldoc.perl.org/functions/ref.html

+7

ध्यान दें कि संदर्भ आशीर्वाद दिया गया है, ref() पैकेज नाम देता है, अंतर्निहित डेटा-प्रकार नहीं। ऐसे मामलों में, आप स्केलर :: यूटिल के रीफ्टाइप और आशीर्वाद विधियों का उपयोग करने पर विचार कर सकते हैं। – dwarring

+1

@snoopy हालांकि, अधिकांश समय वस्तु के पैकेज नाम (वर्ग) को जानना अधिक उपयोगी होता है। और आपको वैसे भी ऑब्जेक्ट आंतरिक के साथ गड़बड़ नहीं करना चाहिए। – slebetman

संबंधित मुद्दे