में फाइलों में हैश और सरणी पढ़ मैं एक noob.I के बारे में कैसे डेटा सहेजा और पर्ल के तहत पढ़ा जाना चाहिए कुछ बुनियादी ज्ञान की जरूरत है हूँ। एक हैश और एक सरणी को बचाने के लिए कहें। फ़ाइल का किस प्रारूप (एक्सटेंशन) का उपयोग किया जाना चाहिए? टेक्स्ट? अब तक मैं सिर्फ स्ट्रिंग print FILE %hash
के रूप में सभी चीजों को बचाने और उन्हें वापस स्ट्रिंग print <FILE>
के रूप में पढ़ सकते हैं। अगर मुझे फ़ाइल से अपने फ़ंक्शन हैश और सरणी इनपुट की आवश्यकता है तो मुझे क्या करना चाहिए। उन्हें वापस हैश और सरणी में कैसे रखा जाए?स्टोर और पर्ल
उत्तर
आप डेटा क्रमबद्धता के लिए देख रहे हैं। लोकप्रिय विकल्पों कि मजबूत होते हैं Sereal, JSON::XS और YAML::XS हैं। कम ज्ञात स्वरूप हैं: ASN.1, Avro, BERT, BSON, CBOR, JSYNC, MessagePack, Protocol Buffers, Thrift।
अन्य अक्सर उल्लेख विकल्प Storable और Data::Dumper (या समान)/eval
हैं, लेकिन मैं उन्हें सलाह देते हैं नहीं कर सकते क्योंकि Storable के प्रारूप पर्ल संस्करण निर्भर है, और क्योंकि यह मनमाना कोड निष्पादित eval
असुरक्षित है। 2012 तक, पार्सिंग काउंटर-पार्ट Data::Undump अभी तक बहुत प्रगति नहीं हुई है। मैं इसलिए भी कि यह पर्ल डेटा प्रकार अच्छी तरह से नक्शा नहीं है XML का उपयोग करने की अनुशंसा नहीं कर सकते हैं, और कई प्रतिस्पर्धा/असंगत स्कीमा कैसे XML और डेटा के बीच अनुवाद करने वहां मौजूद।
कोड उदाहरण (परीक्षण किया):
use JSON::XS qw(encode_json decode_json);
use File::Slurp qw(read_file write_file);
my %hash;
{
my $json = encode_json \%hash;
write_file('dump.json', { binmode => ':raw' }, $json);
}
{
my $json = read_file('dump.json', { binmode => ':raw' });
%hash = %{ decode_json $json };
}
use YAML::XS qw(Load Dump);
use File::Slurp qw(read_file write_file);
my %hash;
{
my $yaml = Dump \%hash;
write_file('dump.yml', { binmode => ':raw' }, $yaml);
}
{
my $yaml = read_file('dump.yml', { binmode => ':raw' });
%hash = %{ Load $yaml };
}
अप यहां से अगले कदम object persistence है।
भी पढ़ें: Serializers for Perl: when to use what
अच्छी पोस्ट, daxim के माध्यम से उन्हें फिर से उपयोग कर सकते हैं। +1। बहुत, बहुत सराहनीय। :) – verisimilitude
महान संसाधन। धन्यवाद। –
Perlmonks क्रमबद्धता पर दो अच्छा विचार विमर्श किया है।
यह वास्तव में कैसे आप अपनी फ़ाइल में डेटा स्टोर करना चाहते हैं पर निर्भर करता है। मैं आपको एक सरणी में फ़ाइल पढ़ने और फ़ाइल में हैश वापस लिखने के लिए सक्षम करने के लिए कुछ बुनियादी पर्ल कोड लिखने का प्रयास करूंगा।
#Load a file into a hash.
#My Text file has the following format.
#field1=value1
#field2=value2
#<FILE1> is an opens a sample txt file in read-only mode.
my %hash;
while (<FILE1>)
{
chomp;
my ($key, $val) = split /=/;
$hash{$key} .= exists $hash{$key} ? ",$val" : $val;
}
हाँ। मौजूदा सीपीएएन मॉड्यूल का उपयोग कच्चे कोड की बजाय अधिक उपयुक्त होगा। – verisimilitude
क्षमा करें। मैं इसे एक टिप्पणी के रूप में पोस्ट करना चाहता था। – verisimilitude
दिलचस्प और उपयोगी। इस दृष्टिकोण के कुछ वातावरण में मूल्य है जहां मॉड्यूल स्थापित करना आसान नहीं है। मैं मानता हूं कि एक पसंदीदा दृष्टिकोण डाटा :: डम्पर (जो हाल के वर्षों में लंबा सफर तय कर चुका है) या किसी अन्य मॉड्यूल का उपयोग करेगा। –
आप नए मैं सिर्फ सुझाव है() में शामिल होने के साथ सरणी/हैश से स्ट्रिंग के लिए बनाने के लिए और वे "प्रिंट" के साथ इसे लिखने और फिर पढ़ सकते हैं और विभाजन का उपयोग करते हैं() सरणी/हैश फिर से बनाने के लिए। पर्ल शिक्षण टेक्स्ट बुक उदाहरण जैसे यह अधिक आसान तरीका होगा।
और नुकसान क्या होगा? –
सरणी या हैश (उदा। बहुआयामी सरणी) से कहीं अधिक जटिल से निपटना मुश्किल हो सकता है। –
- 1. पर्ल अपने इंटरमीडिएट बाइट कोड कहां स्टोर करता है?
- 2. पर्ल और MongoDB बाइनरी डेटा
- 3. DBIx और पर्ल
- 4. पर्ल क्यूआर // और प्रतिस्थापन
- 5. जब पर्ल और जी.डी.
- 6. पर्ल प्रोग्रामिंग और वितरण
- 7. पर्ल कतार और
- 8. मैं पर्ल क्लास में फ़ाइलहेडल को कैसे स्टोर और एक्सेस कर सकता हूं?
- 9. विंडोज स्टोर ऐप और एफ #
- 10. मान्य और मैक App स्टोर
- 11. अर्थपूर्ण स्टोर और इकाई हब
- 12. पर्ल-डी और मॉडुलिनो समस्या
- 13. पर्ल ऑपरेटरों और stringified "संख्या"
- 14. एनसीर्स और पर्ल, कोई गाइड?
- 15. स्मॉलटॉक, पर्ल, पायथन और रूबी
- 16. पर्ल विभाजन और नियमित अभिव्यक्ति
- 17. पर्ल, डीबीआई और MySQL delimiter
- 18. वेनिला पर्ल और स्ट्रॉबेरी पर्ल के बीच अंतर क्या हैं?
- 19. पर्ल स्क्रिप्ट
- 20. पर्ल में, एक .pm (पर्ल मॉड्यूल) और .pl (पर्ल स्क्रिप्ट) फ़ाइल के बीच क्या अंतर है?
- 21. पर्ल
- 22. पर्ल:
- 23. पर्ल
- 24. पर्ल
- 25. पर्ल
- 26. पर्ल
- 27. पर्ल
- 28. पर्ल
- 29. पर्ल
- 30. पर्ल
आप जैसे मॉड्यूल की जाँच कर सकते हैं [Storable] (http://search.cpan.org/perldoc?Storable) या [डाटा :: डम्पर] (http://search.cpan.org/perldoc?Data: : डम्पर)। – TLP
** डेटा :: डम्पर ** आपको सरणी/हैश स्टोर करने में मदद करनी चाहिए। आप ** आवश्यकता/eval ** – tuxuday