in reply to Waiting for delayed output after system()

You could get the external program (or a wrapper for it) to print the file's final size to STDOUT. Then replace system() with backticks, eg
my $size = `rsh remotehost external_program`; chomp $size; sleep 1 while (! -f $file or -s $file < $size);