खोज…


वाक्य - विन्यास

  • अपवित्र # असत्य
  • '' # परिभाषित, गलत
  • 0 # परिभाषित, लंबाई, गलत
  • '0' # परिभाषित, लंबाई, गलत है

टिप्पणियों

पर्ल के पास बूलियन डेटा प्रकार नहीं है, और न ही इसके पास कई अन्य भाषाओं की तरह कोई true और false कीवर्ड है। हालांकि, प्रत्येक स्केलर मूल्य सही या गलत का मूल्यांकन करेगा जब एक बूलियन संदर्भ में मूल्यांकन किया जाता है (उदाहरण के लिए एक स्टेटमेंट या थोड़ी देर के लूप में स्थिति), उदाहरण के लिए।

निम्नलिखित मूल्यों को गलत माना जाता है:

  • '' , खाली तार। यह वही है जो बिल्ट-इन तुलना ऑपरेटर लौटाता है (उदाहरण 0 == 1 )
  • 0 , संख्या 0, भले ही आप इसे 000 या 0.0 के रूप में लिखें
  • '0' , वह स्ट्रिंग जिसमें एक 0 अंक होता है
  • undef , अपरिभाषित मूल्य
  • ऑब्जेक्ट्स जो कि JSON::false जैसे गलत मानों को अंजाम देने / सख्त करने के लिए ओवरलोडिंग का उपयोग JSON::false

अन्य सभी मूल्य सत्य हैं:

  • कोई भी गैर-शून्य संख्या जैसे 1 , 3.14 , 'NaN' या 'Inf'
  • कोई भी स्ट्रिंग जो संख्यात्मक रूप से 0 है लेकिन वस्तुतः स्ट्रिंग '0' , जैसे '00' , '0e0' , "0\n" और "abc"
    यदि आप जानबूझकर एक वास्तविक 0 मान लौटा रहे हैं, तो '0E0' (अच्छी तरह से ज्ञात मॉड्यूल द्वारा प्रयुक्त) या '0 but true' (पर्ल कार्यों द्वारा उपयोग) को प्राथमिकता '0E0'
  • कोई अन्य स्ट्रिंग जो खाली नहीं है, जैसे ' ' , 'false'
  • सभी संदर्भ, भले ही वे झूठे मूल्यों को संदर्भित करते हों, जैसे कि \'' , [] , या {}
  • झूठे मूल्यों की एक सरणी या हैश

निम्नलिखित ऑपरेटरों को आमतौर पर स्केलर संदर्भ में एक बूलियन वापस करने के लिए इलाज किया जाता है:

  • @a देता है कि सरणी खाली है या नहीं

  • %h लौटाता है कि हैश खाली है या नहीं

  • grep लौटाता है कि क्या कोई मिलान आइटम मिला या नहीं

  • @a = LIST और (LIST) = LIST वापस आती है कि क्या दाहिने हाथ की लिस्ट ने किसी स्केलर का उत्पादन किया या नहीं

सच्चे और झूठे मूल्यों की सूची

use feature qw( say );

# Numbers are true if they're not equal to 0.
say 0             ? 'true' : 'false'; # false
say 1             ? 'true' : 'false'; # true
say 2             ? 'true' : 'false'; # true
say -1            ? 'true' : 'false'; # true
say 1-1           ? 'true' : 'false'; # false
say 0e7           ? 'true' : 'false'; # false
say -0.00         ? 'true' : 'false'; # false

# Strings are true if they're not empty.
say 'a'           ? 'true' : 'false'; # true
say 'false'       ? 'true' : 'false'; # true
say ''            ? 'true' : 'false'; # false

# Even if a string would be treated as 0 in numeric context, it's true if nonempty.
# The only exception is the string "0", which is false.
# To force numeric context add 0 to the string
say '0'           ? 'true' : 'false'; # false
say '0.0'         ? 'true' : 'false'; # true
say '0e0'         ? 'true' : 'false'; # true
say '0 but true'  ? 'true' : 'false'; # true
say '0 whargarbl' ? 'true' : 'false'; # true
say 0+'0 argarbl' ? 'true' : 'false'; # false

# Things that become numbers in scalar context are treated as numbers.
my @c = ();
my @d = (0);
say @c            ? 'true' : 'false'; # false
say @d            ? 'true' : 'false'; # true

# Anything undefined is false.
say undef         ? 'true' : 'false'; # false

# References are always true, even if they point at something false
my @c = ();
my $d = 0;
say \@c            ? 'true' : 'false'; # true
say \$d            ? 'true' : 'false'; # true
say \0             ? 'true' : 'false'; # true
say \''            ? 'true' : 'false'; # true


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow