foo(make_a_closure(".xml")); #or my $x=make_a_closure(".xml"); foo($x); sub make_a_closure { my ($sExt) = @_; return sub { ...#do something with $sExt } }