पर स्ट्रिंग का उपयोग नहीं कर सकता है जबकि मुझे निम्नलिखित पर्ल कोड के साथ कुछ मार्गदर्शन चाहिए। जब मैं no strict 'refs'
छोड़ देता हूं, तो sub
ठीक काम करता है।पर्ल सख्त रेफरी
Can't use string ("A") as a symbol ref while "strict refs" in use at test.pl
यह लाइनों में मर जाता है के रूप में "यहाँ" नीचे चिह्नित: लेकिन अगर no strict 'refs'
निकाल दिया जाता है, तो मैं त्रुटि संदेश मिलता है। यह sub
को A..Z से सभी फ़ाइलों को खोलने (लिखने>) की आवश्यकता है और रीड फ़ाइल (LOG) से regex
पर आधारित आउटपुट को संबंधित फ़ाइल आउटपुट में लिखा जाएगा।
use strict;
use Text::CSV_XS;
no strict 'refs';
...
...
sub file_split {
my ($i, $fh, @FH);
my ($file) = @_;
my (@alpha) = ("A".."Z");
for (@alpha) {
$fh = $_ ;
open ($fh,">","$_-$file") || die $!; <--------- HERE
push @FH, $fh;
}
my $csv = Text::CSV_XS->new({ binary => 1,
allow_whitespace => 1,
allow_loose_escapes => 1,
allow_loose_quotes =>1,
escape_char => undef ,
sep_char => ',',
auto_diag=> 1
});
open(LOG,"<", $file) || die $!;
while (my $row = $csv->getline(*LOG)) {
if ($row->[0] =~ /^(\w)/) {
print $1 <--------- HERE
"$row->[0]".",".
"$row->[1]" .",".
"$row->[2]" .",".
"$row->[3]" .",".
"$row->[4]".",".
"$row->[5]"."\n";
} else {
print "Record skipped... --> $row->[0] <-- ... please verify \n";
}
}
}
वह चाल है। और प्रिंट $ 1 को {$ FH {$ 1}} प्रिंट करने के लिए प्रतिस्थापित किया गया था। धन्यवाद। – Marcello