Wow, and I thought mine was cryptic. Maybe you can explain exactly what you're doing here. I know that by setting $| to 1 you are setting the selected filehandle (STDOUT by default) to AutoFlush instead of buffering it, but I don't get the rest. It looks like you're saying this:
select() the first element of the list (select(STDOUT), $| = 1) which should be the equivalent of "select(select(STDOUT))". I'm assuming that select(STDOUT) returns the filehandle that was selected if successful, because that would make it the equivalent of select(STDOUT) but then you have the $| = 1 in there, which will set the autoflush to on for STDOUT if executed any time after select()ing STDOUT and before select() ing another filehandle. I just don't understand how it all fits together as presented, and maybe that's where you can help me. How is this different from: select(STDOUT); $| = 1; -----Original Message----- From: Weijie Ding [mailto:[EMAIL PROTECTED]] Sent: Monday, December 02, 2002 9:52 PM To: Andrew F.; [EMAIL PROTECTED] Subject: Re: Joining with a basic question Hi, Andrew F., 2002-12-03 13:48:40 I think this may because your buffered output. You can use the following to set output unbuffered/flushed before your first statement in your program. select((select(STDOUT), $| = 1)[0]); ======= At 2002-12-02, 21:01:00 you wrote: ======= >Hello all. My name is Andrew. > > I might as well get right to it. I'm writing a real basic script, since I'm still learning Perl. It looks like this: > > >print "Input a name: "; #Prompt for a name >sleep .5; >$name1 = <STDIN>; #User input > >print "\nInput another name:"; #Second prompt >sleep .5; >$name2 = <STDIN>; #Second input > >if ($name1 eq $name2) {; #Compares two variables and returns > print "\nThese are the same."; # whether or not they are similar > } > else {; > print "\nThere are not the same."; > }; > >The problem is, when I run this, it asks for the input before it prints the visible prompt. In other words, it treats it as if it were ordered: > >$name1 = <STDIN>; #User input >$name2 = <STDIN>; #Second input >print "Input a name: "; #Prompt for a name >sleep .5; >print "\nInput another name:"; #Second prompt >sleep .5; > >Does anyone know why it does this or how to prevent it? > >Thanks, > Andrew ======================================== Best regards. Weijie Ding [EMAIL PROTECTED] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]