while (@vars) { print "directive: "; print join " ", map munge_var($_), splice @vars, 0, 4; print $/; } #### sub print_directive { return unless @_; print "directive: "; print join " ", map munge_var($_), splice @_, 0, 4; print $/; &print_directive; } print_directive @vars;