ravi45722 has asked for the wisdom of the Perl Monks concerning the following question:
Here I am trying to count the events where 10th field (Submit), 13th field (GSM), 14th field (SMPP). The sample input is
Tue Oct 13 00:50:01 2015|1025|959791769374|1234|Tue Oct 13 00:50:01 20 +15|Tue Oct 13 00:50:01 2015|CMT|Undelivered|none|Submit|0|SMSC_PR_LC_ +SMSC_InvalidDestAddress|GSM|INVALID|ASCII|92|92|no||no|no||None|No|NO +|no|no|0|0|0|0||959790000028||8|0||0|no|no|default_billing|-1|0|no|no +|1|1|1|1|0|1|0|0|||||Tue Oct 13 06:50:01 2015|SR|||IV|011809614446740 +010007|||0|0||0|0||0||||1234||||||||||||||||||
I tried like this. It's not showing any error nor warnings. I don't understand where I have to mention my input file.
#!/usr/bin/perl use strict; use warnings; use Text::CSV; my $csv = Text::CSV->new(); # create a new object $csv->setDelimiter('|'); my $sample_input_string = '""|""|""|""|""|""|""|""|Submit|""|""|""|GSM +|GSM|'; if ($csv->parse($sample_input_string)) { my @field = $csv->fields; my $count = 0; for my $column (@field) { print ++$count, " => ", $column, "\n"; } print "\n"; } else { my $err = $csv->error_input; print "parse() failed on argument: ", $err, "\n"; }
Output
[root@ems Telenor_CDR]# perl text_csv.pl 1 => 2 => 3 => 4 => 5 => 6 => 7 => 8 => 9 => 10 => 11 => 12 => 13 => 14 => 15 => 16 => 17 => 18 => 19 => 20 => 21 => 22 => 23 => 24 => 25 => 26 => 27 =>
Expected output
Submit|GSM|GSM => 560
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Need help with Text::CSV
by Tux (Canon) on Oct 28, 2015 at 07:33 UTC | |
|
Re: Need help with Text::CSV
by kevbot (Vicar) on Oct 28, 2015 at 05:42 UTC | |
by ravi45722 (Pilgrim) on Oct 28, 2015 at 05:52 UTC | |
by kcott (Archbishop) on Oct 28, 2015 at 06:28 UTC | |
by kevbot (Vicar) on Oct 28, 2015 at 06:30 UTC | |
by ravi45722 (Pilgrim) on Oct 28, 2015 at 08:49 UTC | |
by choroba (Cardinal) on Oct 29, 2015 at 16:58 UTC | |
|