这不完全是一个问题。我想我发明了新的成语——优雅的表达方式:做某事,如果失败,尝试修复它,然后再做一次。如果失败了3次,就放弃。它看起来不错吗?
use strict;
write_file('lol');
write_file('abc');
write_file('def');
write_file('ijk');
my $depth;
sub write_file
{
if ( $depth++ > 3 ) { die 'FAIL' };
print FILE $depth.join ', ', @_ or open(FILE, '>log'), write_file(@_);
$depth = 0;
}