#!/usr/bin/env perl use strict; use warnings; use Capture::Tiny qw(capture); use Path::Tiny; use feature qw (say); my $source = qq(nose/); path("failure.ok")->touch && die $! unless -e $source; my $target = qq(fubar/); path("failure.ok")->touch && die $! unless -e $target; my $tar = qq(tar cf - $source | (cd $target && tar xvf - )); my ( $stdout, $stderr, $exit ) = capture { system($tar); }; say $stdout; say $stderr; say $exit; $exit ? path("failure.ok")->touch : path("success.ok")->touch; __END__