मुझे फ़ाइल से पढ़ने की जरूरत है, इसके माध्यम से पुनरावृत्ति करें और दूसरी फ़ाइल में लाइन लिखें। जब लाइनों की संख्या थ्रेसहोल्ड तक पहुंच जाती है, तो आउटपुट फ़ाइल हैंडल बंद करें और एक नया खोलें।पर्ल में, फ़ाइलों को कई बार खोलने से कैसे बचें
जब भी मैं नीचे इनपुट फ़ाइल हैंडल से एक पंक्ति पढ़ता हूं, तो मैं आउटपुट फ़ाइल हैंडल को खोलने और बंद करने से कैसे बचूं?
use autodie qw(:all);
my $tot = 0;
my $postfix = 'A';
my $threshold = 100;
open my $fip, '<', 'input.txt';
LINE: while (my $line = <$fip>) {
my $tot += substr($line, 10, 5);
open my $fop, '>>', 'output_' . $postfix;
if ($tot < $threshold) {
print {$fop} $line;
}
else {
$tot = 0;
$postfix++;
redo LINE;
}
close $fop;
}
close $fip;
लूप के अंदर अपनी फ़ाइल को खोलें और बंद न करें। लूप के ऊपर 'ओपन' कमांड को ले जाएं। –