use warnings; use strict; my $line; my $msgtype; my $bytes34 ; while () { 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