---
name: "File::Monitor::Lite"
section: "3pm"
platform: "linux"
package: "libfile-monitor-lite-perl"
version: "0.652003-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/File::Monitor::Lite"
---

# File::Monitor::Lite(3pm)

Monitor file changes

## NAME

File::Monitor::Lite - Monitor file changes

## SYNOPSIS

```
  use File::Monitor::Lite;

  my $monitor = File::Monitor::Lite->new (
      in => '.',
      name => '*.html',
  );
  while ($monitor->check() and sleep 1){
      my @deleted_files = $monitor->deleted;
      my @modified_files = $monitor->modified;
      my @created_files = $monitor->created;
      my @observing_files = $monitor->observed;
      `do blah..` if $monitor->anychange;
  }
```

## DESCRIPTION

This is another implementation of File::Monitor. While File::Monitor cannot detect file creation (unless you declare file name first), I use File::Find::Rule to rescan files every time when `$monitor`-\>**check()** is executed. To use this module, just follow synopsis above.

Currently one cannot change file observing rules. To do so, create another monitor object with new rules.

```
    $m1=File::Monitor::Lite->new(
        name => '*.html',
        in => '.',
    );
    $m1->check();
    #blah...
    $m2=File::Monitor::Lite->new(
        name => '*.css',
        in => '.',
    );
    $m2->check();
    #blah...
```

## INTERFACE

- " new ( args ) "

  Create a new `"File::Monitor::Lite"` object.

  ```
      my $monitor = File::Monitor::Lite->new(
          in => '.',
          name => '*.mp3',
      );
  ```

  The syntax is inherited from File::Find::Rule. It will applied on File::Find::Rule as

  ```
      File::Find::Rule
          ->file()
          ->name('*.mp3')
          ->in('.');
  ```

  As described in File::Find::Rule, name can be globs or regular expressions.

  ```
      name => '*.pm',                     # a simple glob
      name => qr/.+\.pm$/,                # regex
      name => ['*.mp3', qr/.+\.ogg$/],    # array of rules
      name => @rules,
  ```

- " check() "

  Check if any file recognized by File::Find::Rule has changed (created, modified, deleted.) The usage is simple:

  ```
      $monitor->check();
  ```

- " created "

  Returns an array of file names which has been created since last check.

- " modified "

  Returns an array of file names which has been modified since last check.

- " deleted "

  Returns an array of file names which has been deleted since last check.

- " observed "

  Returns an array of file names which monitor is observing at.

## SEE ALSO

File::Find::Rule, File::Monitor

## AUTHOR

dryman, \<idryman@gmail.com\>

## COPYRIGHT AND LICENSE

Copyright (C) 2011 by dryman

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.0 or, at your option, any later version of Perl 5 you may have available.
