sub process_drop_file { my $file = Path::Class::File->new(shift); -f $file or croak "'$file' is not a file"; sleep(1) until (-s $file); # <-- New line my $doc = XML::LibXML->new->parse_file("$file"); # Do stuff with it... $file->remove or croak "Couldn't remove '$file'"; }