use strict; my @data1 = ( 1, 2, 3, 4, 5, 2, 4, 6 ); my @data2 = ( "apple", "orange", "potato", "grape" ); my @ans1; my @ans2; my @ans3; my @ans4; sub func { my ($arg) = @_; return $arg % 2; } ## main @ans1 = grep( $_ % 3 , @data1 ); ## exsample 1 @ans2 = grep( func($_) , @data1 ); ## exsample 2 @ans3 = grep( { 1 if (($_==3)||($_==5)||($_==6)) } @data1 ); ## exsample 3 @ans4 = grep( /[gr]/ , @data2 ); ## exsample 4 print "ex 1 : " . join(", ", @ans1) . "\n"; print "ex 2 : " . join(", ", @ans2) . "\n"; print "ex 3 : " . join(", ", @ans3) . "\n"; print "ex 4 : " . join(", ", @ans4) . "\n";