"redo" cannot be used to retry a block which returns a value such as "eval {}", "sub {}" or "do {}", and should not be used to exit a grep() or map() operation.
####
warn "new IMG: $fileName " if DEBUG;
FILEWRITE: {
eval {
open( NEWIMG, ">>$fileName" ) or die "Can't open new imagefile: ($fileName) $! \n";
binmode( NEWIMG );
$large->Resize( height => $newH, width => $newW ); # or die "Resizing error: $! \n";
$large->Write( file => \*NEWIMG ); # or die "Write error: $!\n";
close( NEWIMG );
};
warn "trying to write the new file ( $fileName ) failed: $@ " if ( $@ );
redo FILEWRITE if ( $@ );
}
undef $large;
warn "New LG image written" if DEBUG;
####
unless ( -e $useFile and $needThumb && -e $checkThumb ) {
warn "resizing $useFile ( and $checkThumb )";
my $resizeOK = $utils->resizeImg( $baseImg, $useFile, $needThumb );
}
warn "done resizing in main app " ;