Есть в Perl такая штука как OOP без OOP, называется замыканиями. Теорию можно почитать тут:
http://www.samag.ru/archive/article/625Мы сразу перейдем к примерам:
http://pastebin.com/jPspbFL4http://pastebin.com/nr3fSqxkhttp://pastebin.com/cKsYT6sJhttp://pastebin.com/qJbtJiyJКак это работает можно посмтреть по выводу (обратите внимание на значения переменных) Зачем это нужно? Впервые я столкнулся с необходимостью такой логики когда работал с IO::AIO. Дело в том что aio_write может не записать все за один раз и вернуть размер записанного. Нужно сверить его с исходным заданием и вызвать aio_write опять, тоесть рекурсивно. А когда все будет записанно закрыть файл.