[ [] , [ [] ] , [ [] , [ [] ] ] ] #### sub ordinal { my @list = defined($_[0]) ? @{ $_[1] } : (); if ( $_[0] == 0 ) { return \@list } if ( $_[0] == 1 ) { return [ @list , \@list ] } return ordinal( $_[0] - 1 , [ @list , \@list ] ); }