http://www.perlmonks.org?node_id=629796


in reply to Nested evals - are they evil?

Consider

eval { my ($dev, $inode) = stat($dir) or die "stat $dir\n"; eval { opendir D, $dir or die "opendir $dir\n"; eval { my $e = readdir(D) or die "readdir $dir\n"; eval { open my $in, '<' $e or die "open $e\n"; # etc etc } } } }

Especially if there was lots of other code intertwined within those blocks, when sprinkled with lots of conditionals on, and assignments to, $@, to confuse the unwary. Now that's what I would call evil nested evals.

Your puny evilness cannot hope to compare with this evilness (which is what I was expecting to find when I read the title of this node). Your code is naught but exception handling, which is not so much evil as merely vile :)

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