2011-09-21 8 views
8

>:scalar क्या मतलब है?

पहले कभी नहीं कोड के इस प्रकार देखते हैं ..

उत्तर

9

विशेष ">: बात" वाक्य रचना परत बात द्वारा निर्दिष्ट उपयोग करने के लिए पर्ल आईओ प्रणाली बताता है। 'परत' के लिए PerlIO documentation पर एक नज़र डालें। सामान्य परतें 'कच्ची' और 'utf8' हैं।

इस मामले में, यह आप $ एक में स्मृति फ़ाइल जो युक्त जो कुछ STDOUT करने के लिए भेजा जाता है पहुंचना चाहिए के रूप में stdout उपयोग कर सकेगा। अधिक आम तौर पर, वाक्यविन्यास आपको एक इन-मेमोरी फ़ाइल खोलने देता है, फिर फाइलों को सामान्य रूप से फ़ाइलों को लिखने वाले अन्य कार्यों में भेजता है, ताकि आप अपना आउटपुट एकत्र कर सकें (या अपना इनपुट प्रदान कर सकें)। ,

open my $fh, ">:scalar", \$scalar or die; 
open my $fh, ">", \$scalar or die; 

यह PerlIO द्वारा प्रदान की गई है, और PerlIO::scalar द्वारा कार्यान्वित हालांकि आप 'उपयोग की जरूरत नहीं है:

तुम भी एक "फाइल" जो एक अदिश लिए एक संदर्भ है खोलने के द्वारा एक ही परिणाम प्राप्त कर सकते हैं कार्यक्षमता तक पहुंचने के लिए मॉड्यूल।

+0

क्या '> करता है: मतलब scalar'? – asker

+0

मैंने शुरुआत में इसे जोड़ा है। – Alex

3

पर्ल एक layered IO system उपयोग करता है। श्रृंखला के नीचे, एक परत को पाता है जो मीडिया तक पहुंचने से संबंधित है। scalar आईओ प्रणाली परत हैंडल से पढ़ रहे हैं और एक फ़ाइल के बजाय एक अदिश के लिए लिख रहा है। कह रही है

open(my $fh, '>:scalar', \$scalar) 

अदिश हैंडल के लिए ओएस के हैंडल के लिए

open(my $fh, '>:unix', $file_name) 

कह के बराबर है। यह पूरी तरह से अनावश्यक है, क्योंकि पर्ल पहले ही जानता है कि यह एक स्केलर हैंडल है और ओएस हैंडल नहीं है।

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