Rand Stats



Actions Status


IO::Notification::Recursive - Recursively watch a directory and any subdirectories


use IO::Notification::Recursive;

use IO::Notification::Recursive;

my $supply = watch-recursive(".");

# mention any changes on any files in the current directory and any subdirectories.
$supply.tap({ .say; });

# Also watch for changes in any newly created subdirectories
my $supply = watch-recursive(".", :update);


Raku comes with a way to watch a file or directory for changes called IO::Notification.watch-path (or IO::Path.watch). As files are changed or created or removed from a directory you are watching, these changes are registered on the Supply created by .watch-path (or .watch.

However, if any files are changed or created or removed from any subdirectories, those do not generate changes on the Supply. This module provides a watch-recursive() subroutine that will generate changes for a directory and any subdirectories.

By default, if the directory you are watching has subdirectories created while you are watching it, these new directories are not added to the list of watched directories. If you pass the :update parameter, newly created subdirectories within any directories you are currently watching will also be watched for changes.


Jonathan Scott Duff

Source can be located at: https://github.com/raku-community-modules/IO-Notification-Recursive . Comments and Pull Requests are welcome.


Copyright 2015 - 2017 Jonathan Scott Duff

Copyright 2018 - 2022 Raku Community

This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.