use warnings; use strict; use ntheory qw/forpart/; use List::MoreUtils qw/uniq/; my $sum = shift || 20; my $terms = shift || 4; forpart { print "@_\n" if @_ == uniq @_ } $sum,{n=>$terms};