use strict; my $string = 'one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen twenty'; { local $, = ', '; print first_x( $string, 10 ), "\n"; } print scalar first_x( $string, 10 ), "\n"; sub first_x { return wantarray ? ( split /\s+/, $_[0], $_[1] + 1 )[ 0 .. $_[1] - 1 ] : join ' ', ( split /\s+/, $_[0], $_[1] + 1 )[ 0 .. $_[1] - 1 ]; }