my $function_ref = my_closure($stuff); for ( my $data = $function_ref->() ) { # do things } #### for ( qw{ NS MX TXT HINFO SPF SRV A CNAME PTR } ) { if ( exists $dns_records{$_} ) { print_header("$_"); my $sortby = setsort($_); for my $rec ( sort $sortby @{$dns_records{$_}} ) { print $rec, "\n"; } } } sub setsort { my $type = shift; return sub { $a <=> $b } if ( uc($type) eq "PTR" ); return sub { $a cmp $b }; } #### Array found where operator expected at ./sample.pl line 5, at end of line (Missing operator before ?)