eval { bork_bork_bork }; if ( $@ =~ m{ \A Can't \s open \s ( .+ ) / ( [^/]+ ) \s }xms ) { my ( $missing_dir, $log_filename ) = ( $1, $2 ); if ( ! -d $missing_dir ) { # try to make the directory } }