#!/usr/bin/perl use warnings; use strict; use feature qw{ say }; open my $OUT, '>', '1' or die $!; my $child = fork; if ($child) { sleep 1; my %new_name = map +($_ => $_ + 1), 1 .. 8; for my $old (1 .. 8) { rename $old, $new_name{$old} or die $!; say "$old renamed to $new_name{$old}."; sleep 1; } exit } defined $child or die "Can't fork"; for (1 .. 10) { say {$OUT} $_; say "Printed: $_."; sleep 1; }