#!/usr/bin/perl -Twl use strict; use List::Util qw(max); my @lw = longest_words(join '', ); local $" = ', '; print length($lw[0]), ' letters: ', "@lw"; sub longest_words { local $_ = $_[0]; my %W; $W{$1} = length($1) while /\b(\w+)\b/sg; my $ll = max values %W; return grep { $W{$_} == $ll } keys %W; } __DATA__ three four five six seven eight nine foobar obsolescent superfluous inevitable pseudohash pseudonym pseudopod