#!/usr/bin/perl

use Fcntl 'O_NONBLOCK', 'F_SETFL', 'F_GETFL';

my $flags;
fcntl(STDIN, F_GETFL, $flags) or die "GETFL: $!";
$flags |= O_NONBLOCK;
fcntl(STDIN, F_SETFL, $flags) or die "SETFL: $!";

while (1) {     
  my $buf;
  my $br = sysread STDIN, $buf, 1024;
  if (defined $br) {
    print STDERR "$br bytes read\n";
    if ($br == 0) {
      print STDERR "End of file.\n";
      last;
    }
  } else {
    print STDERR "No data available.\n";
    sleep 1;
  }
}

