in reply to sleep?

It works just fine you just cand see it working cause of the buffering at work here. Add a new line char to the print eg:
#!/usr/bin/perl -w use strict; { print "I'm going to sleep\n"; sleep(1); redo; }
You may also want to take a look at $|++ which will turn buffering off and will also allow your code to work.

HTH.


--

Zigster

Replies are listed 'Best First'.
Re: (Zigster)Re: sleep?
by sierrathedog04 (Hermit) on Mar 21, 2001 at 00:17 UTC
    It was surprising to me, also, that one must add a "\n" to one's programs to see the output as it is printed. Typing 'perldoc perlfaq5' from the command line explains why.

    It turns out that the need to add a "\n" is an artifact of Larry Wall choosing to write perl in C. Perldoc explains that

    The C standard I/O library (stdio) normally buffers characters set to devices...Any time you use print() or write() in Perl, you go through this buffering...Serial devices (e.g., modems, terminals) are normally line buffered, and stdio sends the entire line when it gets the newline.

    The more I learn about Perl, the more I think that to really know Perl one must know the language that Perl is written in, C. Moreover, I think that, even aside from portability problems, Perl would not have been Perl if Larry had chosen to write it in Lisp or Pascal. Much of what we think of as Perlish is really C-ish.

      You've thumped a big nail on the head there my friend! People new to the language never quite understand that perl started out a melange of C, awk, sed, and shell-script. Not knowing at least a little about them can slow down your understanding of many a perl quirk. Maybe we should hang a real post of this up under Meditations...

      --
      $you = new YOU;
      honk() if $you->love(perl)