In perl, a closure is implemented as an anonymous subroutine. You can think of it as something of a function generator.

sub greet {
  my $salutation = shift();
  return sub { print "$salutation " . shift (). "\n"; };
}

my $a = greet( "Hello" );
my $b = greet( "Bonjour" );

So now if you call &$a("World"), "Hello World" will print. If you call &$b("La Monde"), "Bonjour La Monde" will print. Closures are useful if you want to bind a particular value of a lexical variable to a function.