perlquestion
jjap
Dear Monks,<br>
I do get the data I need form the following code. <br> However the warnings probably indicates that there is something wrong with my structure.
<code>
use warnings;
use strict;
my $line;
my $msgtype;
my $bytes34 ;
while (<DATA>) {
chomp;
next if ($_ =~ /^$/); # fixes the issue...
$line = $_;
$msgtype = substr $line, 6, 8;
# keep only relevant type
next if ( $msgtype ne "18FEF200") ;
$bytes34 = substr $line, 26, 2;
print "Line is: $line\n";
print "qty is: $bytes34\n";
}
__END__
0 18FEF200 X 8 00 00 FF FF 00 00 FF FF 17487.238770
0 18FEF200 X 8 00 00 FF FF 00 00 FF FF 17487.138770
0 18FEF200 X 8 0F 00 00 00 00 00 FF FF 17484.938610
0 18FEF200 X 8 12 00 00 00 00 00 FF FF 17484.838580
0 18FEF200 X 8 00 00 FF FF 00 00 FF FF 17486.838750
0 18FEF600 X 8 FF 31 72 FF FF FF FF FF 17486.759310
0 18FEF200 X 8 1E 01 00 00 00 00 FF FF 17321.322610
0 18FEF200 X 8 2E 01 00 00 00 00 FF FF 17321.222020
0 18FEF200 X 8 45 01 00 00 00 00 FF FF 17321.122600
0 18FEF200 X 8 5A 02 00 00 00 00 FF FF 17016.197300
0 18FEF200 X 8 75 02 00 00 00 00 FF FF 17016.097270</code>
Yields the 10 correct values followed by 5 warnings such as:
<code>
substr outside of string at parsefile.pl line 13, <DATA> line 12.
Use of uninitialized value $msgtype in string ne at parsefile.pl line 16, <DATA>
line 12.</code>
Your indulgence and any hints will be greatly appreciated!<br>
<b>**update** <br></b>
<code>next if ($_ =~ /^$/);</code>
<b>inserted to address possible empty lines, thanks to all</b>