Michael Schilli > File-Tail-FAM-0.02 > File::Tail::FAM

Download:
File-Tail-FAM-0.02.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.02   Source  

NAME ^

File::Tail::FAM - Tail using the File Alteration Monitor (FAM)

SYNOPSIS ^

    use File::Tail::FAM;

    my $tail = File::Tail::FAM->new(
        file => "/tmp/abc"
    );

       # Blocking read (without wasting any CPU time)
    while(defined( my $data = $tail->read() )) {
        print "This just got added: [$data]\n";
    }

       # Or, read data in non-blocking mode
    my $data = $tail->read_nonblock();
    if(defined $data) {
        print "This just got added: [$data]\n";
    } else {
        print "Nothing happened\n";
    }

DESCRIPTION ^

File::Tail::FAM reports when new data chunks are appended to a given file. Similar to the Unix command

    $ tail -f filename

it watches a file grow continuously and reports whenever a new chunk of data has been added.

Differently from the traditional approach of periodically polling the file (used by tail -f and File::Tail), File::Tail::FAM uses the File Alteration Monitor to get notified by the Linux kernel whenever new data gets added to the watched file.

This way, File::Tail::FAM will simply block (and therefore won't use any CPU cycles) until the kernel's notification mechanism wakes it up when new data has arrived.

File::Tail::FAM uses the Perl module SGI::FAM, which provides an API to the File Alteration Monitor (FAM) library routines which come with many Linux distributions (man 3 fam) and are available for download at

    http://oss.sgi.com/projects/fam/index.html

LEGALESE ^

Copyright 2005 by Mike Schilli, all rights reserved. This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR ^

2005, Mike Schilli <cpan@perlmeister.com>

syntax highlighting: