## name Basic passing
## failures 0
## cut

print grep("$foo", @list);
print ( grep "$foo", @list );
@list = ( grep "$foo", @list );
$aref = [ grep "$foo", @list ];
$href = { grep "$foo", @list };

if( grep { foo($_) } @list ) {}
for( grep { foo($_) } @list ) {}
sub { grep { foo($_) } @list }

#-----------------------------------------------------------------------------

## name Basic failure
## failures 8
## cut

grep "$foo", @list;
grep("$foo", @list);
grep { foo($_) } @list;
grep({ foo($_) } @list);

if( $condition ){ grep { foo($_) } @list }
while( $condition ){ grep { foo($_) } @list }
for( @list ){ grep { foo($_) } @list }
sub { grep { foo($_) } @list; return }

#-----------------------------------------------------------------------------

## name Comma operator
## failures 1
## TODO not handled properly
## cut

$baz, grep "$foo", @list;

#-----------------------------------------------------------------------------

## name Chained void grep
## failures 1
## cut

grep { spam($_) }
  grep { foo($_) }
    grep { bar($_) }
      grep { baz($_) } @list;

#-----------------------------------------------------------------------------

## name Subscript grep (RT #79289)
## failures 0
## cut

my %hash;

delete @hash{ grep { m/ foo /smx } keys %hash };
delete @hash{ grep m/ foo /smx, keys %hash };
# The following is the form that was actually failing.
delete @hash{ grep ( m/ foo /smx, keys %hash ) };

#-----------------------------------------------------------------------------

# Local Variables:
#   mode: cperl
#   cperl-indent-level: 4
#   fill-column: 78
#   indent-tabs-mode: nil
#   c-indentation-style: bsd
# End:
# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround :