in reply to Test Code to read data from file
Your code expects fixed size records but the data you show consists of variable length lines. It is not at all clear what you are trying to achieve, unless you simply want the first 63 characters from each line. Ignoring most of the extra formatting code that could be just:
#!/usr/bin/perl use strict; use warnings; my $fileData = <<FILE; 19:39:44.765096 IP 10.195.32.212.49152 > 255.255.255.255.trivnet1: UDP +, length 12 19:39:44.765572 IP 10.195.32.212.49152 > 239.0.82.11.trivnet1: UDP, le +ngth 12 19:39:45.202568 IP 10.195.32.96.61804 > 255.255.255.255.sentinelsrm: U +DP, length 40 19:39:45.265116 IP 10.195.32.212.49152 > 255.255.255.255.trivnet1: UDP +, length 12 19:39:45.265590 IP 10.195.32.212.49152 > 239.0.82.11.trivnet1: UDP, le +ngth 12 19:39:45.411153 IP 10.195.32.198.netbios-ns > 10.195.32.255.netbios-ns +: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST 19:39:45.412136 IP 10.195.32.198.netbios-dgm > 10.195.32.255.netbios-d +gm: NBT UDP PACKET(138) 19:39:45.620442 STP 802.1d, Config, Flags [none], bridge-id 8020.00:22 +:56:29:3a:00.8014, length 43 19:39:45.765086 IP 10.195.32.212.49152 > 255.255.255.255.trivnet1: UDP +, length 12 FILE open my $fIn, '<', \$fileData; while (<$fIn>) { chomp; printf ">> $. %s\n", substr $_, 0, 63; }
Prints:
>> 1 19:39:44.765096 IP 10.195.32.212.49152 > 255.255.255.255.trivne >> 2 19:39:44.765572 IP 10.195.32.212.49152 > 239.0.82.11.trivnet1: >> 3 19:39:45.202568 IP 10.195.32.96.61804 > 255.255.255.255.sentine >> 4 19:39:45.265116 IP 10.195.32.212.49152 > 255.255.255.255.trivne >> 5 19:39:45.265590 IP 10.195.32.212.49152 > 239.0.82.11.trivnet1: >> 6 19:39:45.411153 IP 10.195.32.198.netbios-ns > 10.195.32.255.net >> 7 19:39:45.412136 IP 10.195.32.198.netbios-dgm > 10.195.32.255.ne >> 8 19:39:45.620442 STP 802.1d, Config, Flags [none], bridge-id 802 >> 9 19:39:45.765086 IP 10.195.32.212.49152 > 255.255.255.255.trivne
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Test Code to read data from file
by 1hab (Initiate) on Mar 19, 2012 at 00:16 UTC | |
by GrandFather (Saint) on Mar 19, 2012 at 01:05 UTC |