in reply to Fixed: Suppressing mkpath error output

Since 99.99% of the readers will not have been around at the time this was discussed in the CB (e.g. me), here's an example of how it could be done with File::Path version 2. The idea is to pass an error collector (a reference to a scalar) to mkpath, and instead of dying it will instead push all errors it encounters onto the collector.

use strict; use File::Path 'mkpath'; use Data::Dumper; mkpath( 'a:/tmp', {error => \my $err}); @$err and print Dumper($err); __PRODUCES__ $VAR1 = [ { 'a:/' => 'Permission denied; The device is not ready' }, { 'a:/tmp' => 'Permission denied; The device is not ready' } ];

The error variable is guaranteed to be always a reference to an array so that you don't have to add make-work code to ensure that it is defined, is a reference to an array, etc. etc. Just use it in scalar context to see if it contains zero elements (== no errors).

• another intruder with the mooring in the heart of the Perl