use IO::Select; open my $fh, "<", $fifo or die "couldn't open $fifo: $!"; my $sel = IO::Select->new($fh); if ($sel->can_read(0.1)) { close $fh; do_database_stuff(); }