In human terms, it's a funny way of passing arguments to a subroutine when you define it as well as when you call it. It's useful for setting up little bits of code to run later, such as callbacks. You can also think of closure as a way to write a subroutine template without using eval. That's what closure is all about. This applies to only lexical variables, by the way.
Dynamic variables continue to work as they have always worked.
Closure is not something that most Perl programmers need trouble themselves about to begin with. References are often returned by special subroutines called constructors. Perl objects are just references to a special kind of object that happens to know which package it's associated with. Constructors are just special subroutines that know how to create that association. They do so by starting with an ordinary reference, and it remains an ordinary reference even while it's also being an object.