in reply to making a loop script with a remote URL call faster

#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11140461 use warnings; use Time::HiRes qw( sleep ); use IO::Select; my $interval = 1; # FIXME for testing my $pricing = ''; my $sel = IO::Select->new; my $time = time; my $loopcount = 0; while( 1 ) { if( $sel->count ) { for my $fh ( $sel->can_read(0) ) { if( not sysread $fh, $pricing, 16384, length $pricing ) { $sel->remove( $fh ); # FIXME process data print "\nbuffer : $pricing at loop count $loopcount\n"; $time = time + $interval; } } } elsif( time >= $time ) { if( open my $fh, '-|' ) { $sel->add( $fh ); $pricing = ''; } else { sleep 0.7; # FIXME fake net::curl delay time print "fake data\n"; exit; } } # hard loop print ++$loopcount, "\r"; }