sub in {
my ($coderef)= shift(@_);
my ($match)= shift(@_);
my (@vals)= @_;
for ( @vals ) { $coderef->($match) if /$match/ }
}
####
sub in {
my ($coderef)= shift(@_);
my ($match)= shift(@_);
my %dispatch = map { $_ => $coderef } @_;
if ( exists $dispatch{$match} ) {
$dispatch->($match);
}
}
####
#!/usr/bin/perl
use strict;
use warnings;
sub in_dispatch {
my ($coderef)= shift(@_);
my ($match)= shift(@_);
my %dispatch = map { $_ => $coderef } @_;
if ( exists $dispatch{$match} ) {
$dispatch{$match}->($match);
}
}
sub in_array {
my ($coderef)= shift(@_);
my ($match)= shift(@_);
my (@vals)= @_;
for ( @vals ) { $coderef->($match) if /$match/ }
}
my $code = sub { my ($pal)= shift(@_);
print "Hello $pal!\n" ;
};
my @pals = qw(Dick Jane Spot Samuel);
in_dispatch($code, 'George', @pals); # no output
in_dispatch($code, 'Jane', @pals); # Hello Jane!
in_list($code, 'Dick', @pals); # Hello Dick!
in_list($code, 'Rover', @pals); # no output