my @all = ('a', 'b', 'c', '1', '2', '3'); my ($numbers, $letters) = grep2 {/\d/} @all; print "numbers: @$numbers\n"; # prints "1 2 3" print "letters: @$letters\n"; # prints "a b c"
sub grep2 (&@) { my $code = shift; my $true = []; my $false = []; foreach (@_) { if (&{$code}()) { push @$true, $_; } else { push @$false, $_; } } return ($true, $false); } my @all = ('a', 'b', 'c', '1', '2', '3'); my ($numbers, $letters) = grep2 {/\d/} @all; print "numbers: @$numbers\n"; # prints "1 2 3" print "letters: @$letters\n"; # prints "a b c" print "all: @all\n";
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: grep2 (like 'grep', but also return non-matches)
by ccn (Vicar) on Jan 14, 2005 at 18:30 UTC | |
Re: grep2 (like 'grep', but also return non-matches)
by BrentDax (Hermit) on Jan 24, 2005 at 19:32 UTC | |
by Tanktalus (Canon) on Jan 24, 2005 at 19:39 UTC | |
by BrentDax (Hermit) on Jan 24, 2005 at 19:50 UTC | |
Re: grep2 (like 'grep', but also return non-matches)
by belg4mit (Prior) on Jan 16, 2005 at 15:05 UTC |