in reply to failure to generate report file

According to what you've asked, your desired output is

2007-Jan-11 00:00:01 UTC (GMT +0000) - Poll: channel = two, ref = com, id = 133714761 0

Your 'print' statement says:

print $fh_out "REFS $refs: occurrences at " . $lookup{$refs} . "and $timestamp \n";

You're never going to get the former from the latter. :)

From what I can see, you want to capture the lines that contain 'channel = two' and you want to add a number to the end of those. Assuming that you want that number to show how many times that ID has been seen, the following would do it:

#!/usr/bin/perl -w open In, "log.2008-01-11" or die "log: $!\n"; open Out, ">report.2008-01-11.txt" or die "report: $!\n"; while (<In>){ chomp; next unless /channel = two,.* (\d+)$/; print Out "$_ ", $seen{$1} || 0, "\n"; } close In; close Out;

On the other hand, I've just woken up and may be missing something. :) Hope this helps.

Replies are listed 'Best First'.
Re^2: failure to generate report file
by ww (Archbishop) on Mar 06, 2008 at 03:40 UTC

    Close (and I do understand needing caffeine before coding) but Re: failure to generate report file doesn't deal with OP's request to capture only those with 3600 second separation. Others, however, have dealt with that.

    But (and as OP replied) $seen is used only once in your code. Minor mods correct that issue (and ignore the count):

    #!/usr/bin/perl -w open In, "log.2008-01-11" or die "log: $!\n"; open Out, ">report.2008-01-11.txt" or die "report: $!\n"; while (<In>){ chomp; next unless ($_ =~/channel = two.* (\d+)$/); print Out "$_ \n"; } close In; close Out;

    produces

    2007-Jan-11 00:00:01 UTC (GMT +0000) - Poll: channel = two, ref = com, + id = 133714761 2007-Jan-11 00:00:01 UTC (GMT +0000) - Poll: channel = two, ref = com, + id = 595131400 2007-Jan-11 00:00:02 UTC (GMT +0000) - Poll: channel = two, ref = com, + id = 595191883 2007-Jan-11 00:00:04 UTC (GMT +0000) - Poll: channel = two, ref = com, + id = 006456768 2007-Jan-11 01:07:06 UTC (GMT +0000) - Poll: channel = two, ref = com, + id = 133714761
Re^2: failure to generate report file
by tuakilan (Acolyte) on Mar 06, 2008 at 03:11 UTC
    i paste the code in and tried to run it with perl -wc but the error as below
    Name "main::seen" used only once: possible typo at line 8