#!/usr/bin/perl -w use strict; my $i = 'void'; my $meditations = path_to_enlightenment(); my $three_jewels = tell ( *REFUGE = *DATA ); MANTRA : until ( $i eq attain( 'enlightenment' ) ){ seek REFUGE, $three_jewels, 0; study ; redo MANTRA unless &$meditations > boundaries( $i ); $i = attain( 'enlightenment' ) } sub path_to_enlightenment { my $merit = 0; return sub { $merit += practice( 'perfections' ); $sentient_beings::++; } } sub practice { foreach ( 'generosity', 'morality', 'patience', 'concentration', 'wisdom', 'enthusiastic perseverance' ){ $_{$_}++; } return 1; } sub attain { return @_ } sub boundaries { return length $_[0] } print <