20 #-----------------------------------------------------------------------------
26 $result = eval { foo; };
27 @result = eval { bar; };
28 $result = { eval { baz; } };
29 $result = [ eval { buz; } ];
30 @result = ( 0, eval { blrfl; } );
31 @result = [ qw< one two >, { thrpt => ( eval { frlbfrnk; } ) } ];
33 $result = eval 'foo;';
34 @result = eval 'bar;';
35 $result = { eval 'baz;' };
36 $result = [ eval 'buz;' ];
37 @result = ( 0, eval 'blrfl;' );
38 @result = [ qw< one two >, { thrpt => ( eval 'frlbfrnk;' ) } ];
40 #-----------------------------------------------------------------------------
42 ## name Assignment with comma separated statements.
46 $result = 1, eval { foo; };
47 @result = 1, eval { bar; };
48 $result = 1, { eval { baz; } };
49 $result = 1, [ eval { buz; } ];
50 @result = 1, ( eval { blrfl; } );
51 @result = 1, [ qw< one two >, { thrpt => ( eval { frlbfrnk; } ) } ];
53 $result = 1, eval 'foo;';
54 @result = 1, eval 'bar;';
55 $result = 1, { eval 'baz;' };
56 $result = 1, [ eval 'buz;' ];
57 @result = 1, ( eval 'blrfl;' );
58 @result = 1, [ qw< one two >, { thrpt => ( eval 'frlbfrnk;' ) } ];
60 #-----------------------------------------------------------------------------
66 if ( eval { bar; } ) {
70 if ( ( eval { blrfl; } ) ) {
74 if ( 5 == eval { bar; } ) {
78 if ( scalar ( eval { blrfl; } ) ) {
82 if ( not eval { whatever; } ) {
92 if ( ( eval 'blrfl;' ) ) {
96 if ( 5 == eval 'bar;' ) {
100 if ( scalar ( eval 'blrfl;' ) ) {
104 if ( ! eval 'whatever;' ) {
108 #-----------------------------------------------------------------------------
114 foreach my $thingy ( eval { bar; } ) {
118 foreach my $thingy ( ( eval { blrfl; } ) ) {
122 foreach my $thingy ( qw< one two >, eval { bar; } ) {
127 foreach my $thingy ( eval 'bar;' ) {
131 foreach my $thingy ( ( eval 'blrfl;' ) ) {
135 foreach my $thingy ( qw< one two >, eval 'bar;' ) {
139 #-----------------------------------------------------------------------------
141 ## name C-style for with eval in condition or assignment
145 for (blah; eval { bar; }; blah ) {
149 for (blah; ( eval { blrfl; } ); blah ) {
153 for (blah; eval { bar; } eq 'bing bang bong'; blah ) {
157 for (my $x = eval { thrp; }; $x < 1587; $x = eval { thrp; } ) {
162 for (blah; eval 'bar;'; blah ) {
166 for (blah; ( eval 'blrfl;' ); blah ) {
170 for (blah; eval 'bar;' eq 'bing bang bong'; blah ) {
174 for (my $x = eval 'thrp;'; $x < 1587; $x = eval 'thrp;' ) {
178 #-----------------------------------------------------------------------------
180 ## name C-style for with eval in initialization or increment with no assignment
184 for (eval { bar; }; blah; blah) {
188 for ( blah; blah; ( eval { blrfl; } ) ) {
193 for (eval 'bar;'; blah; blah) {
197 for ( blah; blah; ( eval 'blrfl;' ) ) {
201 #-----------------------------------------------------------------------------
207 while ( eval { bar; } ) {
211 while ( ( ( eval { blrfl; } ) ) ) {
216 while ( eval 'bar;' ) {
220 while ( ( ( eval 'blrfl;' ) ) ) {
224 #-----------------------------------------------------------------------------
230 bleah if eval { yadda; };
231 bleah if ( eval { yadda; } );
232 bleah if 5 == eval { yadda; };
233 bleah if eval { yadda; } == 5;
235 bleah if eval 'yadda;';
236 bleah if ( eval 'yadda;' );
237 bleah if 5 == eval 'yadda;';
238 bleah if eval 'yadda;' == 5;
240 #-----------------------------------------------------------------------------
242 ## name Postfix foreach
246 blargh($_) foreach eval { bar; };
247 blargh($_) foreach ( eval { blrfl; } );
248 blargh($_) foreach qw< one two >, eval { bar; };
249 blargh($_) foreach eval { bar; }, qw< one two >;
251 blargh($_) foreach eval 'bar;';
252 blargh($_) foreach ( eval 'blrfl;' );
253 blargh($_) foreach eval 'bar;', qw< one two >;
255 #-----------------------------------------------------------------------------
257 ## name First value in comma-separated list in condition
261 if ( eval { 1 }, 0 ) {
265 if ( ( eval { 1 }, 0 ) ) {
273 if ( ( eval '1', 0 ) ) {
277 #-----------------------------------------------------------------------------
279 ## name Last value in comma-separated list in condition
283 if ( 0, eval { 1 }, ) {
287 # Comma outside inner parentheses.
288 if ( ( 0, eval { 1 } ), , ) {
292 if ( 0, eval '1', ) {
296 # Comma inside inner parentheses.
297 if ( ( 0, eval '1', , ) ) {
301 #-----------------------------------------------------------------------------
303 ## name Last value in comma-separated list that isn't the last element in another list in condition
307 if ( ( 0, eval { 1 } ), 0 ) {
311 if ( ( ( 0, eval { 1 } ) ), 0 ) {
315 if ( ( 0, eval '1' ), 0 ) {
319 if ( ( ( 0, eval '1' ) ), 0 ) {
323 #-----------------------------------------------------------------------------
325 ## name "Proper" handling of return value
340 eval "something_else" or die;
342 # eval gets the thing following it before || does.
355 eval "something_else" || die;
365 eval "something_else" and thingy;
367 # eval gets the thing following it before && does.
375 eval "something_else" && die;
377 #-----------------------------------------------------------------------------
379 ##############################################################################
380 # $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/t/ErrorHandling/RequireCheckingReturnValueOfEval.run $
381 # $Date: 2008-06-30 00:37:19 -0500 (Mon, 30 Jun 2008) $
382 # $Author: clonezone $
384 ##############################################################################
388 # cperl-indent-level: 4
390 # indent-tabs-mode: nil
391 # c-indentation-style: bsd
393 # ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround :