# a.pl
use IO::Handle;
open( my $fh_b,'| ./b.pl') || die( $!);
open( my $fh_c,'| ./c.pl') || die( $!);
$_->autoflush( 1) foreach $fh_b,$fh_c;
print( $fh_b "\n");
sleep( 2);
print( $fh_c "\n");
sleep( 2);
print( $fh_b "\n");
# b.pl
<>;
printf( STDERR "%s:%u:%u\n",$0,__LINE__,time);
open( my $fh,'>','a.txt') || die( $!);
print( $fh "pid=$$\n");
printf( STDERR "%s:%u:%u\n",$0,__LINE__,time);
<>;
printf( STDERR "%s:%u:%u\n",$0,__LINE__,time);
close( $fh);
# c.pl
<>;
printf( STDERR "%s:%u:%u\n",$0,__LINE__,time);
rename('a.txt','b.txt') || die( $!);
printf( STDERR "%s:%u:%u\n",$0,__LINE__,time);
IyBhLnBsCnVzZSBJTzo6SGFuZGxlOwpvcGVuKCBteSAkZmhfYiwnfCAuL2IucGwnKSB8fCBkaWUoICQhKTsKb3BlbiggbXkgJGZoX2MsJ3wgLi9jLnBsJykgfHwgZGllKCAkISk7CiRfLT5hdXRvZmx1c2goIDEpIGZvcmVhY2ggJGZoX2IsJGZoX2M7CnByaW50KCAkZmhfYiAiXG4iKTsKc2xlZXAoIDIpOwpwcmludCggJGZoX2MgIlxuIik7CnNsZWVwKCAyKTsKcHJpbnQoICRmaF9iICJcbiIpOwoKIyBiLnBsCjw+OwpwcmludGYoIFNUREVSUiAiJXM6JXU6JXVcbiIsJDAsX19MSU5FX18sdGltZSk7Cm9wZW4oIG15ICRmaCwnPicsJ2EudHh0JykgfHwgZGllKCAkISk7CnByaW50KCAkZmggInBpZD0kJFxuIik7CnByaW50ZiggU1RERVJSICIlczoldToldVxuIiwkMCxfX0xJTkVfXyx0aW1lKTsKPD47CnByaW50ZiggU1RERVJSICIlczoldToldVxuIiwkMCxfX0xJTkVfXyx0aW1lKTsKY2xvc2UoICRmaCk7CgojIGMucGwKPD47CnByaW50ZiggU1RERVJSICIlczoldToldVxuIiwkMCxfX0xJTkVfXyx0aW1lKTsKcmVuYW1lKCdhLnR4dCcsJ2IudHh0JykgfHwgZGllKCAkISk7CnByaW50ZiggU1RERVJSICIlczoldToldVxuIiwkMCxfX0xJTkVfXyx0aW1lKTsK