मुझे यह निर्धारित करने की आवश्यकता है कि एक पर्ल हैश की एक दी गई कुंजी है, लेकिन उस कुंजी को एक अपरिचित मान में मैप किया जाएगा। विशेष रूप से, इसके लिए प्रेरणा यह देख रही है कि getopt()
का उपयोग करते समय बूलियन झंडे हैं, जिसमें हैश संदर्भ इसके साथ पास हो गया है। मैंने पहले ही इस साइट और Google दोनों को खोजा है, और exists()
और defined()
स्थिति के लिए लागू प्रतीत नहीं होता है, वे सिर्फ देखते हैं कि किसी दिए गए कुंजी के लिए मान अनिर्धारित है, तो वे जांच नहीं करते हैं कि हैश वास्तव में है या नहीं कुंजी। अगर मैं यहां एक आरटीएफएम हूं, तो कृपया मुझे मैनुअल पर इंगित करें जो इसे समझाता है।मैं कैसे निर्धारित कर सकता हूं कि एक पर्ल हैश में एक अपरिभाषित मान के लिए एक महत्वपूर्ण मैपिंग है या नहीं?
उत्तर
मौजूद है() और परिभाषित(), स्थिति के लिए लागू किया जा करने के लिए नहीं है, वे तो बस देखते हैं किसी कुंजी के लिए मूल्य अपरिभाषित है वे जांचें कि हैश में वास्तव में कुंजी
गलत है या नहीं। यही कारण है कि वास्तव में क्या defined()
करता है, लेकिन आप क्या चाहते हैं वास्तव में exists()
करता है:
my %hash = (
key1 => 'value',
key2 => undef,
);
foreach my $key (qw(key1 key2 key3))
{
print "\$hash{$key} exists: " . (exists $hash{$key} ? "yes" : "no") . "\n";
print "\$hash{$key} is defined: " . (defined $hash{$key} ? "yes" : "no") . "\n";
}
पैदा करता है:
$hash{key1} exists: yes $hash{key1} is defined: yes $hash{key2} exists: yes $hash{key2} is defined: no $hash{key3} exists: no $hash{key3} is defined: no
इन दोनों कार्यों के लिए दस्तावेज़ perldoc -f defined
और perldoc -f exists
पर कमांड लाइन पर उपलब्ध है (या perldoc perlfunc
* पर सभी विधियों के लिए प्रलेखन पढ़ें। आधिकारिक वेब प्रलेखन यहाँ है:
* आप विशेष रूप से उल्लेख किया है के बाद से RTFM और आप पर्ल प्रलेखन के स्थानों के बारे में पता नहीं हो सकता है, मुझे यह भी कहना है जाने कि आप perldoc perl
पर या http://perldoc.perl.org पर सभी perldocs की एक पूर्ण अनुक्रमणिका प्राप्त कर सकते हैं।
यदि मैं आपका प्रश्न सही तरीके से पढ़ रहा हूं, तो मुझे लगता है कि आप exists के बारे में उलझन में हैं।
, EXPR
मौजूद है एक अभिव्यक्ति है कि एक हैश तत्व या सरणी तत्व निर्दिष्ट करता है को देखते हुए TRUE देता हैश या सरणी में निर्दिष्ट तत्व कभी किया गया है प्रारंभ, भले ही: प्रलेखन से संबंधित मान अपरिभाषित है।
उदाहरण के लिए:
use strict;
use warnings;
my %h = (
foo => 1,
bar => undef,
);
for my $k (qw(foo bar baz)){
print $k, "\n" if exists $h{$k} and not defined $h{$k};
}
लघु जवाब:
if (exists $hash{$key} and not defined $hash{$key}) {
...
}
- 1. पर्ल: एक हैश मान
- 2. मैं कैसे निर्धारित कर सकता हूं कि एक यूआरएल रीडायरेक्ट करता है या नहीं?
- 3. मैं कैसे निर्धारित कर सकता हूं कि पर्ल फ़ंक्शन रनटाइम पर मौजूद है या नहीं?
- 4. मैं कैसे निर्धारित कर सकता हूं कि विंडोज में एक विशिष्ट फ़ाइल खुलती है या नहीं?
- 5. मैं कैसे देख सकता हूं कि एक पर्ल हैश के पास पहले से ही एक निश्चित कुंजी है या नहीं?
- 6. मैं कैसे निर्धारित कर सकता हूं कि एक यूआरएल PHP में रीडायरेक्ट करता है या नहीं?
- 7. मैं एक नेस्टेड पर्ल हैश को एक गैर-घोंसले में कैसे साफ कर सकता हूं?
- 8. मैं कैसे निर्धारित कर सकता हूं कि एक सार विधि लागू की गई है या नहीं?
- 9. पर्ल में, मैं कैसे बता सकता हूं कि स्ट्रिंग एक संख्या है या नहीं?
- 10. मैं कैसे निर्धारित कर सकता हूं कि एक समग्र प्रारूप स्ट्रिंग अमान्य है या नहीं?
- 11. मैं कैसे निर्धारित कर सकता हूं कि एक विंडो हैंडल मान्य है या नहीं?
- 12. निर्धारित करें कि जावास्क्रिप्ट मान एक "पूर्णांक" है या नहीं?
- 13. क्या मैं निर्धारित कर सकता हूं कि कोई KeyEventArg एक अक्षर या संख्या है या नहीं?
- 14. मैं कैसे निर्धारित कर सकता हूं कि एक div नीचे स्क्रॉल किया गया है या नहीं?
- 15. मैं कैसे जांच सकता हूं कि एक सामान्य विधि पैरामीटर एक मान प्रकार है या नहीं?
- 16. कैसे एक पर्ल हैश
- 17. मैं एक पर्ल हैश कुंजी का उपयोग कैसे कर सकता हूं जिसमें एक शाब्दिक बिंदु है?
- 18. मैं कैसे निर्धारित करूं कि कोई ऑब्जेक्ट पर्ल में एक विधि लागू करता है या नहीं?
- 19. मैं पर्ल में एक सबराउटिन कैसे कह सकता हूं जिसका नाम हैश में एक मूल्य है?
- 20. मैं कैसे देख सकता हूं कि एक बड़ा JSON ऑब्जेक्ट में कोई मान है या नहीं?
- 21. मैं पर्ल में एक सरणी कैसे छोटा कर सकता हूं?
- 22. मैं कैसे निर्धारित कर सकता हूं कि चयनित नोड TreeView में एक बच्चा या पैरेंट नोड है या नहीं?
- 23. मैं कैसे निर्धारित करूं कि एक पर्ल फ़ाइल हैंडल एक पढ़ा या लिखने वाला हैंडल है या नहीं?
- 24. मैं पर्ल में एक सशर्त प्रतिस्थापन कैसे कर सकता हूं?
- 25. मैं कैसे बता सकता हूं कि एक वर्चर चर में एक सबस्ट्रिंग है या नहीं?
- 26. मैं एक पर्ल स्क्रिप्ट में चर देखने के लिए एक पर्ल स्क्रिप्ट कैसे प्राप्त कर सकता हूं?
- 27. मैं पर्ल में हैश का हैश कैसे बना सकता हूं?
- 28. पर्ल में, मैं एक विधि को कैसे कॉल कर सकता हूं जिसका नाम स्ट्रिंग में है?
- 29. मैं कैसे निर्धारित कर सकता हूं कि स्ट्रिंग एक स्थानीय फ़ोल्डर स्ट्रिंग या नेटवर्क स्ट्रिंग है या नहीं?
- 30. मैं कैसे परीक्षण कर सकता हूं कि "कुछ" पर्ल में हैश है?