Folks-
In my environment there exists an application that creates a raw ascii
data file on a given host in real time. I wanted to take this raw data
and put it up in a GUI analysis window, so I wrote a POE-based Perl-Tk
script, which uses POE::Wheel::FollowTail (Thanks Rocco, et. al.) as
the data feed and uses Perl-Tk as the GUI. This works very well.
Now, the application has a "-binary" option, which will create a raw
binary file on a given host in real time. I want my GUI analysis
program to be able to work with this data as well. What should I do?
Being lazy, I was hoping I could just define a different filter for
POE::Wheel::FollowTail, that instead of being line oriented, would be
record oriented (each record begins with 0xfefefefe).
I currently have a binary parser that can parse the data. Assuming the
binary data is slurped up into the scalar "$data", the following code
works great:
while($data) {
# Find next beginning-of-record flag & extract record...
$data =~ s/^[^\xfe]*(\xfe\xfe\xfe\xfe[^\xfe]+)// || die "No luck";
my $event=$1;
# Send record to parser...
$parser->parse( $event );
# Print restult...
print "events DUMP:\n", Dumper($parser->{events}), "\n";
}
Being very new to POE and filters, is there something already existing
that I could use? I've toyed with modifying one of the following:
POE::Filter::RecordBlock
POE::Filter::Regexp
POE::Filter::Block
Do any of these make sense for what I want to do? Should I punt on
using FollowTail and try something else?
Any advice is appreciated!
Thanks
-Craig