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
In reply to Re: Fixed: Suppressing mkpath error output
by grinder
in thread Fixed: Suppressing mkpath error output
by wfsp
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |