class IO::Notification::Change {}

IO::Notification.watch-path($path) as well as IO::Path.watch produce a Supply of IO::Notification::Change events for a file or directory, depending on what is used as the $path argument or IO::Path object.

Here is a small example that prints the first ten FileChanged-notifications for the current working directory:

my $finish = Promise.new;
my $count = 0;
IO::Notification.watch-path($*CWD).act-> $change {
    $count++ if $change.event ~~ FileChanged;
    say "($count$change.path()$change.event()";
    $finish.keep if $count >= 10;
});
await $finish;

The type of the change is very much dependent both on the platform and on specific system calls that were used to initiate the change. At this point in time you should not rely on the type of change in general, and test your particular situation.

Methods§

method path§

Returns the path of the file that's being watched.

method event§

Returns the type of event: FileChanged or FileRenamed.

method IO§

Returns a handle of the file that's being watched.

method gist§

multi method gist(IO::Notification::Change:D:)

Returns the path and event attributes, separated by semicolon.