sub trunc { my $max_words = shift or return ''; my $text = shift or return ''; $max_words--; $text =~ /(.+?(?:\s.+?){$max_words})\s+[^\s]/ and return "$1..."; return $text; }