grep


The grep keyword in Perl is a generalization of the Unix/Linux grep tool. Given a condition and a list of values it will return a, usually shorter, list of elements that will return true if used in the expression. In other language the similar tool is called filter.

In this example we have an array of numbers and an expression comparing $_ which holds the current value as grep iterates over the elements of the array. If the current value is greater or equal than 5 then it will be passed to the left hand side, if it is less than 5 then it will be filtered out.

Note, there is no comma after the curly braces.


ARRAY = grep BLOCK LIST


examples/advanced-perl/grep_perl.pl
#!/usr/bin/perl
use strict;
use warnings;

my @numbers = qw(8 2 5 3 1 7);
my @big_numbers = grep {$_ >= 5} @numbers;
print "@big_numbers\n";      # (8, 5, 7)