IO::Notification::Change — watch가 만든 파일 변경 이벤트
IO::Notification::Change — watch가 만든 파일 변경 이벤트
IO::Notification.watch-path($path)와 IO::Path.watch는, $path 인자나 IO::Path 객체로 무엇이 쓰이느냐에 따라 파일이나 디렉터리에 대한 IO::Notification::Change 이벤트들의 Supply를 만들어내요.
class IO::Notification::Change {}
현재 작업 디렉터리에 대한 처음 열 개 FileChanged 알림을 출력하는 짧은 예시를 볼게요.
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;
변경의 종류(type)는 플랫폼과 그 변경을 일으킨 특정 시스템 호출에 크게 의존해요. 지금 시점에서는 변경 종류를 일반적으로 믿지 말고, 자신의 특정 상황을 직접 테스트하는 게 좋아요.
본문
메서드 (Methods)
method path
감시되고 있는 파일의 경로를 반환해요.
method event
이벤트의 종류, 즉 FileChanged나 FileRenamed를 반환해요.
method IO
감시되고 있는 파일의 핸들을 반환해요.
method gist
multi method gist(IO::Notification::Change:D:)
경로와 이벤트 속성을 세미콜론으로 구분해 반환해요.