#!/usr/bin/perl use warnings; use strict; my $length=4; my @number= (1) x $length; while (@number) { printnumber(@number); @number= addto(@number); } sub addto { my @number= @_; while (1) { my $carry=1; foreach (@number) { $_+= $carry; $carry=0; if ($_>3) { $_=1; $carry=1; } } @number=() if ($carry==1); return(@number); } } sub printnumber { my @number= @_; print reverse(@number),"\n"; }