POE::Filter::Grep man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

POE::Filter::Grep(3)  User Contributed Perl Documentation POE::Filter::Grep(3)

NAME
       POE::Filter::Grep - select or remove items based on simple rules

SYNOPSIS
	 #!perl

	 use POE qw(
	   Wheel::FollowTail
	   Filter::Line Filter::Grep Filter::Stackable
	 );

	 POE::Session->create(
	   inline_states => {
	     _start => sub {
	       my $parse_input_as_lines = POE::Filter::Line->new();

	       my $select_sudo_log_lines = POE::Filter::Grep->new(
		 Put => sub { 1 },
		 Get => sub {
		   my $input = shift;
		   return $input =~ /sudo\[\d+\]/i;
		 },
	       );

	       my $filter_stack = POE::Filter::Stackable->new(
		 Filters => [
		   $parse_input_as_lines, # first on get, last on put
		   $select_sudo_log_lines, # first on put, last on get
		 ]
	       );

	       $_[HEAP]{tailor} = POE::Wheel::FollowTail->new(
		 Filename => "/var/log/system.log",
		 InputEvent => "got_log_line",
		 Filter => $filter_stack,
	       );
	     },
	     got_log_line => sub {
	       print "Log: $_[ARG0]\n";
	     }
	   }
	 );

	 POE::Kernel->run();
	 exit;

DESCRIPTION
       POE::Filter::Grep selects or removes items based on simple tests.  It
       may be used to filter input, output, or both.  This filter is named and
       modeled after Perl's built-in grep() function.

       POE::Filter::Grep is designed to be combined with other filters through
       POE::Filter::Stackable.	In the "SYNOPSIS" example, a filter stack is
       created to parse logs as lines and remove all entries that don't
       pertain to a sudo process.  (Or if your glass is half full, the stack
       only selects entries that DO mention sudo.)

PUBLIC FILTER METHODS
       In addition to the usual POE::Filter methods, POE::Filter::Grep also
       supports the following.

   new
       new() constructs a new POE::Filter::Grep object.	 It must either be
       called with a single Code parameter, or both a Put and a Get parameter.
       The values for Code, Put, and Get are code references that, when
       invoked, return true to select an item or false to reject it.  A Code
       function will be used for both input and output, while Get and Put
       functions allow input and output to be filtered in different ways.  The
       item in question will be passed as the function's sole parameter.

	 sub reject_bidoofs {
	   my $pokemon = shift;
	   return 1 if $pokemon ne "bidoof";
	   return;
	 }

	 my $gotta_catch_nearly_all = POE::Filter::Grep->new(
	   Code => \&reject_bidoofs,
	 );

       Enforce read-only behavior:

	 my $read_only = POE::Filter::Grep->new(
	   Get => sub { 1 },
	   Put => sub { 0 },
	 );

   modify
       modify() changes a POE::Filter::Grep object's behavior at run-time.  It
       accepts the same parameters as new(), and it replaces the existing
       tests with new ones.

	 # Don't give away our Dialgas.
	 $gotta_catch_nearly_all->modify(
	   Get => sub { 1 },
	   Put => sub { return shift() ne "dialga" },
	 );

SEE ALSO
       POE::Filter for more information about filters in general.

       POE::Filter::Stackable for more details on stacking filters.

BUGS
       None known.

AUTHORS & COPYRIGHTS
       The Grep filter was contributed by Dieter Pearcey.  Documentation is
       provided by Rocco Caputo.

       Please see the POE manpage for more information about authors and
       contributors.

perl v5.14.2			  2011-12-15		  POE::Filter::Grep(3)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net