आप फ़ाइल हैंडल इन-मेमोरी खोल सकते हैं?मेमोरी में फ़ाइलों को खोलने का मतलब क्या है?
इन-मेमोरी हिस्सा मेरे लिए अस्पष्ट है, इसका क्या अर्थ है?
यदि इसका मतलब है कि आप कंप्यूटर की स्मृति का उपयोग कर सकते हैं, तो क्या यह पहले से ही ऐसा नहीं कर रहा है?
आप फ़ाइल हैंडल इन-मेमोरी खोल सकते हैं?मेमोरी में फ़ाइलों को खोलने का मतलब क्या है?
इन-मेमोरी हिस्सा मेरे लिए अस्पष्ट है, इसका क्या अर्थ है?
यदि इसका मतलब है कि आप कंप्यूटर की स्मृति का उपयोग कर सकते हैं, तो क्या यह पहले से ही ऐसा नहीं कर रहा है?
इसका मतलब है कि आप स्केलर चर से लिखने और पढ़ने के लिए फ़ाइल हैंडल का उपयोग कर सकते हैं।
my $var = "";
open my $fh, '>', \$var;
print $fh "asdf";
close $fh;
print $var; # asdf
अंत में, इस
$var .= "asdf"
करने के लिए सिर्फ एक और तरीका है, लेकिन संदर्भों हैं जहां अधिक सुविधाजनक या अधिक स्ट्रिंग परिवर्तन मानदंड से filehandle मानदंड का उपयोग करने के लिए उपयुक्त है।
उदाहरण के लिए, इस कोड के साथ शुरू:
open my $fh, '>', $logfile;
...
print $fh $some_message_to_be_logged;
... 500 more print $fh statements ...
close $fh;
लेकिन क्या आपको पता है? अब मैं अपने लॉग संदेशों एक अदिश चर में, रिकॉर्ड था शायद इसलिए मैं उन के माध्यम से खोज सकते हैं, उन्हें हेरफेर इससे पहले कि वे डिस्क के लिए लिखा जाता है आदि मैं
$logvar .= $some_message_to_be_logged
लेकिन में करने के लिए अपने सभी print
बयान को बदल सकता है इस मामले में open
कथन को बदलने के लिए यह अधिक सुविधाजनक है।
open my $fh, '>', \$logvar
आप सीधे फ़ाइल स्केलर चर के लिए फ़ाइल हैंडल खोल सकते हैं। यह विशेष रूप से उपयोगी होता है जब आपके पास ऐसा कुछ होता है जिसे फ़ाइल की तरह व्यवहार करना पड़ता है, लेकिन आप डिस्क पर एक नहीं चाहते हैं। इस उदाहरण perldoc से लिया जाता है:
close STDOUT;
open(STDOUT, ">", \$variable)
or die "Can't open STDOUT: $!";
यह STDOUT बंद कर देता है और फिर इसे $variable
से जुड़ी खोल देता है।
आपने यह कहां पढ़ा है? यह भ्रामक है, क्योंकि फ़ाइल हैंडल * हमेशा * एक मेमोरी संरचना है। यह संभवतः पर्ल स्केलर चर (जो स्मृति में हैं) पर फ़ाइल हैंडल खोलने का जिक्र है। – Borodin
हां, आपकी टिप्पणी सही है, मेरा मतलब है कि – airnet
'perldoc -f open' इन्हें" इन-मेमोरी फाइल "के रूप में संदर्भित करता है – mob