2008/8/11 Brian Raven <[EMAIL PROTECTED]>
> Tobias Hoellrich <> wrote:
> > Try:
> > $|++;
> > to unbuffer STDOUT.
> >
> > Hope this helps - Tobias
>
> Not quite. <pedant_mode> That variable activates autoflush, which isn't
> quite the same as unbuffered output, on the currently selected
> filehandle, which may not actually be STDOUT (see 'perldoc perlvar').
> </pedant_mode>
>
> Also, it is usually better to localise the use of such special
> variables. For example:
>
> print "Doing stuff ";
> for (1..20) {
> local $| = 1;
> select undef, undef, undef, 0.5;
> print ".";
> }
> print "\n";
>
> Also, consider a more 'sophisticated' alternative to ".", that I
> sometimes use.
>
> print "Doing some more stuff ";
> my $i = 0;
> for (1..20) {
> local $| = 1;
> select undef, undef, undef, 0.5;
> print "\b" . qw{| / - \\}[$i++ % 4]; } print "\b \n";
>
> HTH
>
> --
> Brian Raven
>
>
> Visit our website at http://www.nyse.com
>
>
Or consider an OO approach, without the sneaky 3 undefs:-
package Spinner;
sub new
{
return bless { position => 0, picture => [ qw( | / - \ ) ] }, shift;
}
sub spin
{
my $obj = shift;
$obj->{position} = ( ++$obj->{position} ) % @{ $obj->{picture} };
print "\b$obj->{picture}[ $obj->{position} ]";
}
DESTROY
{
print "\b \n";
}
package main;
use Win32;
local $| = 1;
print "Doing even more stuff . . . ";
my $spinner = new Spinner;
for ( 1 .. 26 )
{
$spinner->spin();
Win32::Sleep(50);
}
[OT]: Changed jobs then Brian?
Just in
_______________________________________________
Perl-Win32-Users mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs