#!/usr/bin/env perl use strict; use warnings; use IPC::Run qw( run harness ); use Try::Tiny; use Carp; my $file = shift || $0; my @cat = ( "cat", $file ); my @wc = qw( wc -l ); my ( $error, $result ); my @command = ( \@cat, '|', \@wc, '1>', \$result, '2>', \$error ); my $harness = harness @command; try { run $harness; croak $error if $harness->full_result; } catch { print qq(Error: $_); }; chomp $result; printf( "%s:\t%s\n", "result", $result ); printf( "%s:\t%s\n", "cat", $harness->full_result(0) ); printf( "%s:\t%s\n", "wc", $harness->full_result(1) ); __END__ #### karls-mac-mini:Desktop karl$ perlcritic -1 ipc.pl Code is not tidy at line 1, column 1. See page 33 of PBP. (Severity: 1) No package-scoped "$VERSION" variable found at line 1, column 1. See page 404 of PBP. (Severity: 2) Magic punctuation variable $0 used at line 9, column 21. See page 79 of PBP. (Severity: 2) Useless interpolation of literal string at line 11, column 13. See page 51 of PBP. (Severity: 1) Quotes used with a noisy string at line 17, column 24. See page 53 of PBP. (Severity: 2) Return value of flagged function ignored - print at line 26, column 5. See pages 208,278 of PBP. (Severity: 1) Useless interpolation of literal string at line 31, column 21. See page 51 of PBP. (Severity: 1) Builtin function called with parentheses at line 33, column 1. See page 13 of PBP. (Severity: 1) Useless interpolation of literal string at line 33, column 22. See page 51 of PBP. (Severity: 1) Builtin function called with parentheses at line 35, column 1. See page 13 of PBP. (Severity: 1) Useless interpolation of literal string at line 35, column 22. See page 51 of PBP. (Severity: 1)