You may be interested in the module Language::Functional, which implements the Haskall approach to programming; in this module, functions are treated in such a way that one can easily represent infinite series, which are only evalauted when needed.
in reply to infinite series
UPDATE: L::F is the 'new & improved' version of F.pm that I was thinking about but still by the same author, thanks eduardo
Dr. Michael K. Neylon - firstname.lastname@example.org
"You've left the lens cap of your mind on again, Pinky" - The Brain