robert@2: sub filter robert@2: { robert@2: robert@2: $ref = shift; robert@2: @list = @_; robert@2: my @ret = (); robert@2: robert@2: for $element(@list) robert@2: { robert@2: if ($ref->($element)) robert@2: { robert@2: push @ret, $element; robert@2: } robert@2: } robert@2: robert@2: return @ret robert@2: robert@2: } robert@2: robert@2: robert@2: robert@2: robert@2: @test = (1,2,3,4,5,6); robert@2: robert@2: sub even robert@2: { robert@2: return ($_[0]%2 == 0); robert@2: } robert@2: robert@2: @rr = &filter(\&even, @test); robert@2: robert@2: print "@rr";