#grep value! @a = (1 .. 10); @b = grep {$_ > 5} @a; print join(", ", @b) #grep with regular rxpression! print join(" ",(grep {!/^\w{4}$/} (qw(Here are some four letter words.)))); # grep {$_ *= 2}! @array1 = (1, 1, 1, 1); @array2 = grep {$_ *= 2} @array1; print @array1[1]; #Using grep with the file-test operators.! #!/usr/local/bin/perl opendir(CURRDIR, ".") || die("Can't open current directory"); @filelist = grep (!/^\./, grep(-r, readdir(CURRDIR))); closedir(CURRDIR); foreach $file (@filelist) { open (CURRFILE, $file) || die ("Can't open input file $file"); while ($line = ) { if ($line =~ /$ARGV[0]/) { print ("$file:$line"); } } close (CURRFILE); } #grep function with regular expression! @a = qw(This is a test); @b = grep/^\w{4}/, @a; print "@b"; #Iterate over matches with foreach and $_ and nested foreach! #!/usr/bin/perl use warnings; use strict; my $text = "one, two, three, four"; foreach ($text =~ /\b(\w+)\b/g) { print "outer: got: $_, matched: $&, extracted: $1 \n"; foreach (/(\w)/g) { print "\tinner: got: $_, matched $&, extracted $1 \n"; } } #Iterate over matches with foreach and $_ and nested while loop! #!/usr/bin/perl use warnings; use strict; my $text = "one, two, three, four"; while ($text =~ /\b(\w+)\b/g) { print "outer: matched: $&, extracted: $1 \n"; while ($1 =~ /(\w)/g) { print "\tinner: matched $&, extracted $1 \n"; } } #A program that loops using a pattern.! #!/usr/local/bin/perl while ("balata" =~ /.a/g) { $match = $&; print ("$match\n"); }