2012-07-23 16 views
7

में परिवर्तनीय से पढ़ना मेरे पास पर्ल में एक ही चर में संग्रहीत कई लाइनें हैं।पर्ल

मैं जानना चाहता हूं कि <> ऑपरेटर का उपयोग करके उन पंक्तियों को पढ़ना संभव है या नहीं।

उत्तर

7

हां। perldoc -f open में प्रलेखित के रूप में, आप स्केलर चर के लिए फ़ाइल हैंडल खोल सकते हैं।

my $data = <<''; 
line1 
line2 
line3 

open my $fh, '<', \$data; 
while (<$fh>) { 
    chomp; 
    print "[[ $_ ]]\n"; 
} 

# prints 
# [[ line1 ]] 
# [[ line2 ]] 
# [[ line3 ]] 
14

यदि आपको वास्तव में जरूरी है, तो आप इसे एक फ़ाइल खोल सकते हैं।

use strict; 
use warnings; 

my $lines = "one\ntwo\nthree"; 
open my $fh, "<", \$lines; 

while(<$fh>) { 
    print "line $.: $_"; 
} 

वैकल्पिक रूप से, आप पहले से ही वैसे भी स्मृति में सामान मिल गया है, तो आप बस इसे एक सरणी में विभाजित कर सकते हैं:

my @lines = split /\n/, $lines; # or whatever 
foreach my $line(@lines) { 
    # do stuff 
} 

कि शायद पढ़ सकते हैं और लाइन नीचे बनाए रखने के लिए आसान होगा।

+2

यह करने के लिए एक संभावित कारण 'खुला ARGV की चाल है, '<', \ $ default_data जब तक कि @ ARGV' तब '<>' पढ़े तब तक डिफ़ॉल्ट डेटा का उपयोग नहीं करेगा जब तक कि फाइलें पास नहीं हो जातीं। –

0

मैं एक उपयोगी विकल्प मिल गया है,
यह < > उपयोग नहीं करता है, लेकिन काम करता है के रूप में अगर यह किया

for (split /^/, $lines) { 
    ... 
} 

http://www.perlmonks.org/?node_id=745018

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

  • कोई संबंधित समस्या नहीं^_^