This only applies to 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. 5. 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. References of the appropriate type can spring into existence if you dereference them in a context that assumes they exist. Since we haven't talked about dereferencing yet, we can't show you any examples yet. References to filehandles can be created by taking a reference to a typeglob. This is currently the best way to pass filehandles into or out of subroutines, or to store them in larger data structures.