sub build_list { my $item = shift; my $list = shift || []; unshift(@$list, $item); return $list; } { # Without parens: my $list = build_list 'a', build_list 'b', build_list 'c'; print(@$list, "\n"); # abc } { # With parens: my $list = build_list('a', build_list('b', build_list('c'))); print(@$list, "\n"); # abc } { # Spelled out: my $list; $list = build_list 'c'; $list = build_list 'b', $list; $list = build_list 'a', $list; print(@$list, "\n"); # abc }