Isn't it typical. Been working on this since yesterday, but as soon as I post
the question I find the answer·
I've changed
foreach my $line (<STDIN>) {
to
while (<STDIN>) {
my $line=$_;
and now it works perfectly.
On Wednesday 15 December 2010 11:19:07 Gary Stainburn wrote:
> Hi folks.
>
> I've written a small perl script that reads from STDIN, parses the data and
> inserts into a database. It takes the output from syslog-ng and captures
> output from my firewall.
>
> I've configured syslog-ng to send output to the pipe and if I run
>
> cat /var/log/firewall/pipe
>
> I see the output as it is being generated.
>
> The program works perfectly fine if I redirect STDIN from an old log file,
> but if I run it as either
>
> firewall_monitor </var/log/firewall/pipe
>
> or
>
> cat /var/log/firewall/pipe | firewall_monitor
>
> it just sits there and does nothing. Is there anything I need to do to the
> perl script to get it to work with the pipe?
>
> Here is the main part if the script. Even with everything else stripped,
> and justb this code it doesn't display anything.
>
> !/usr/bin/perl -w
>
> use warnings;
> use strict;
> use DBI;
>
> foreach my $line (<STDIN>) {
> my $wline=$line;
> print "$line\n";
> } # while STDIN
>
>
>
>
>
> --
> Gary Stainburn
> I.T. Manager
> Ringways Garages
> http://www.ringways.co.uk
--
Gary Stainburn
I.T. Manager
Ringways Garages
http://www.ringways.co.uk
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/