#! /usr/local/bin/perl $maxval = 10; @t = &proc($maxval); print join(" ",@t) . "\n"; exit; sub proc { local($maxval) = @_; if($maxval < 1) { return undef; } local(@ret) = &proc($maxval-1); return (@ret, $maxval); }