मुझे लगता है कि look_like_number वास्तव में सही/झूठा नहीं लौटाता जैसा कि मैंने माना था, लेकिन वास्तव में एक बाइट लौटाता है जो कि पार्ल आंतरिक आंतरिक संख्या का प्रकार स्केलर में संग्रहीत होता है।स्केलर :: look_like_number लौटने वाले नंबर प्रकार
perl -e'use Scalar::Util qw/looks_like_number/; for (qw/ 1 3 10 34.23 545435.234 2343.0 234 -1423 1sddf -865178652134876152348761253487613254 sdf 24363456345636534563567253765734655 8764325hjkh435 iuh340874 &*^*& 786521948761324876132497821347816.23452345 -8762135487126387432.12435154243 0 nan inf/) { print $_, ": ", looks_like_number($_), "\n" } '
1: 1
3: 1
10: 1
34.23: 5
545435.234: 5
2343.0: 5
234: 1
-1423: 9
1sddf: 0
-865178652134876152348761253487613254: 10
sdf: 0
24363456345636534563567253765734655: 2
8764325hjkh435: 0
iuh340874: 0
&*^*&: 0
786521948761324876132497821347816.23452345: 6
-8762135487126387432.12435154243: 14
0: 1
nan: 36
inf: 20
यह वास्तव में अदिश :: util है कि मैं पा सकते हैं, perlapi के looks_like_number मूल्य, जो भी दस्तावेज में नहीं है लौटने इसके बारे में सिर्फ एक उल्लेख में दर्ज नहीं कर रहा है: उदाहरण के लिए। एक नज़र में, यह प्रतीत होता है:
- & 1 = सांख्यिक
- & 2 = 64 बिट
- & 4 = चल बिन्दु
- & 8 = नकारात्मक
- & 16 = अनंत
- & 32 = संख्या
क्या ये मास्क पोर्टेबल और कोड में उपयोग करने के लिए सुरक्षित हैं?
इसके लिए 'look_like_number() 'के लायक होने के लिए, कम से कम लिनक्स 32-बिट पर 5.8 के बाद से सभी स्थिर perls पर आपके नमूना इनपुट के लिए समान मान वापस आते हैं। बेशक, आपके प्रश्न का समझदार उत्तर अभी भी "नहीं" है। – pilcrow
स्केलर के रूप में :: 1.3 9 तक, यह बदल दिया गया है, और 'look_like_number' हमेशा' PL_yes' या 'PL_no' (यानी' !! 1' या '!! 0') देता है। – tobyink