sub sortit { my ( $fh ) = shift; return pipeit( $fh, 'sort' ); } sub pipeit { my ( $fh, $cmd ) = @_; my $new_fh; return $new_fh if my $pid = open $new_fh, '-|'; die "Fork failed: $!\n" unless defined $pid; open my $pipe, "|$cmd" or die "Pipe failed: $!\n"; print $pipe $_ while <$fh>; exit 0; }