perl pause or wait

Christopher Nehren apeiron at comcast.net
Thu May 13 20:21:58 PDT 2004


JJB wrote:
>I have perl script that issues the newsyslog command followed by 3
>perl scripts that process the new .0 rotated file.
>
>Problem is the newsyslog rotate has not completed creating the new
>.0 and rolling through the other .x files before the first perl
>script in trying to open the .0 file for processing.
>
>Is there in perl pause or wait command I can use to  allow some time
>to elapse before continuing with the launch of the next script?

Using a statement that delays for a specified period of time is a
generally bad idea because you can't guarantee that the operation will
complete in that time. Hence, you should look into filesystem locking
functions: 'perldoc -f fcntl', 'perldoc -f flock', and 'perldoc -f
lock'.

Alternatively, you could use the four-argument form of select to
receive information about when the files are available, but that's
probably too complicated for what you want to do.

Reading through 'perldoc perlipc' is advised for what you want to do.
Granted, it's not traditional IPC, but architecting some IPC would help
to guarantee that you're not processing the files before they're ready.

Yet _another_ possible solution: why do you have four scripts? Can you
not do what you want with one well-structured script? Perl has
virtually all of the branching constructs of C, and some of its very
own.

-- 
I abhor a system designed for the "user", if that word is a coded
pejorative meaning "stupid and unsophisticated".  -- Ken Thompson
-
Unix is user friendly. However, it isn't idiot friendly.
-
Please CC me in all replies, even if I'm on the relevant list(s).
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20040513/0f0d94a5/attachment.bin


More information about the freebsd-questions mailing list