class IO::Notification::Change
ErrorsCollection

class IO::Notification::Change

Changes in a file, produced by watch-file

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.