#!/usr/bin/perl # https://perlmonks.org/?node_id=1230099 use strict; use warnings; use IO::Handle; $| = 1; my $pos = tell DATA; my $pid = fork(); my $x= IO::Handle->new(); $x->fdopen(fileno(DATA), "r"); $pid and select undef, undef, undef, 0.05; seek $x, $pos, 0; while( sysread $x, $_, 1 ) { print $pid ? uc : lc; select undef, undef, undef, 0.1; } 1 while wait > 0; __DATA__ aa bb cc dd ee #### aAa bB Cc dD Ee