Dear Wise Monks
I am having trouble getting an anonymous sub routine to execute.
#!/usr/bin/perl -w use strict; my %new_resolvers = ( 'dns-one' => [ "127.0.0.1\tdns-apple" , "127.0.0.2\tdns-banana" , "127.0.0.3\tdns-shoe" ] , 'dns-extern' => [ sub { my $ip = shift or die "you need to pass in IP address"; my @array; open ( PIPE, "./get_resolvers_for_client.sh|" ) or die __FILE__ . " [" . __LINE__ . "] could not open get_re +solvers_for_client.sh:$!"; while ( <PIPE> ) { chomp; last if /not a one of our IP addresses/; push ( @array, $_ ); } return reverse @array; } ] ); for my $dns_server ( keys %new_resolvers ) { print "getting new resolvers for dns server $dns_server\n"; my $resolvers = join "\n", @{$new_resolvers{$dns_server}} +; print "$resolvers\n\n"; }
When I run my script I get this output ...
getting new resolvers for dns server dns-extern CODE(0x92fe808) getting new resolvers for dns server dns-one 127.0.0.1 dns-apple 127.0.0.2 dns-banana 127.0.0.3 dns-shoe
What am I doing wrong here? How do I invoke the anonymous sub? Thank you.
In reply to How To Call An Anonymous Subroutine? by Plankton
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |