in reply to Avoiding global variables when I need to supply a callback

If I understand your problem correctly, what you need is a closure:
{ # in some scope my @array = ( qw(some data) ); my $finder = URI::Find->new(sub { # this callback code sees @array as it was when the closure wa +s created. }); }
Read up on closures in perlsub and perlref.