Some parts of this page were machine translated.
Powered by Yandex.Translate
http://translate.yandex.com/
कार्य । कोड में पर्ल प्रोग्रामिंग भाषा चर है. आप की जरूरत है कि जाँच करने के लिए इस चर का मान undef
या नहीं.
undef
कार्य । कोड में पर्ल प्रोग्रामिंग भाषा चर है. आप की जरूरत है कि जाँच करने के लिए इस चर का मान undef
या नहीं.
एक चर शामिल हैं undef
केवल यदि इस समारोह defined
चर के लिए गलत देता है । यहाँ कोड है कि प्रदर्शित करता है
पाठ अगर एक चर शामिल हैं undef
:
#!/usr/bin/perl
my $foo;
if ( !defined($foo) ) {
print "foo is undef";
}
क्या जांच करने के लिए undef
में एक चर आप की जरूरत है का उपयोग करने के लिए defined
. लेकिन यह अक्सर होता है
क्या जांच करने के लिए undef
के उपयोग के अन्य, गलत तरीके.
यहाँ का पहला उदाहरण है कि कैसे यह करने के लिए नहीं:
#!/usr/bin/perl
my $foo;
if ( !$foo ) { # error!
print "foo is undef";
}
इस उदाहरण वास्तव में सिर्फ स्ट्रिंग foo is undef
यदि चर $foo
में शामिल है का मूल्य undef
,
लेकिन कोड प्रिंट इस लाइन में अन्य मामलों में. उदाहरण के लिए, यदि $foo
संख्या में शामिल 0
या खाली स्ट्रिंग ''
. इस कोड नहीं है कि जाँच करने के लिए $foo
में शामिल undef
,
और जाँच करें कि $foo
में शामिल है का मूल्य गलत है, और यह है बिल्कुल के रूप में ही नहीं undef
.
यहाँ का एक और उदाहरण है गलत सत्यापन undef
:
#!/usr/bin/perl
my $foo;
if ( $foo == undef ) { # error!
print "foo is undef";
}
वहाँ रहे हैं बस के सभी पूरी तरह से गलत है । यदि चर $foo के
एक मूल्य होता है undef
, इस कोड प्रिंट
जगह foo is undef
, लेकिन कोड प्रिंट इस लाइन में अन्य मामलों में. उदाहरण के लिए, अगर एक चर में $foo
शामिल हैं
स्ट्रिंग 'Hello'
.
ऑपरेटर ==
का इरादा है के लिए संख्या की तुलना करें. इससे पहले कि आप इस की तुलना ऑपरेटर धर्मान्तरित अपने तर्कों के लिए संख्या.
चर $foo
है जो undef
हो जाता है की संख्या 0
. और undef
के अधिकार ऑपरेटर भी हो जाता है की संख्या 0
. शून्य शून्य है,
हालत शुरू हो रहा है. लेकिन शून्य हो सकता है और कुछ लाइनों के साथ, उदाहरण के लिए 'Hello'
.
यदि आप इस कोड को जोड़ने use strict;
और use warnings;
है, तो पर्ल उत्पादन होगा foo is undef
है, लेकिन बस चलो तुम्हें पता है के बारे में क्या हो रहा है
कुछ अजीब:
Use of uninitialized value in numeric eq (==) at script.pl line 8.
Use of uninitialized value $foo in numeric eq (==) at script.pl line 8.
foo is undef
सामान्य में, यह है हमेशा के लिए एक बहुत अच्छा अभ्यास करने के लिए हमेशा उपयोग use strict;
और use warnings;
.