#!/usr/bin/perl -w my $CMD = 'cat'; use IO::Handle; use IPC::Open3 qw( open3 ); use strict; my $pid; if( $^W =~ /mswin32/i ) { unless( @ARGV && $ARGV[0] =~ /^-child$/i ) { $pid= system( 1, qq("$^X" "$0" -child) ) or die "system() failed: $!\n"; } else { shift @ARGV; $pid= 0; } } else { $pid = fork(); if ( !defined($pid) ) { die( "$$: Fork failed: $!\n" ); } } # parent if ( $pid ) { #...