in reply to Net::Dict not acting expectedly

You're doing nothing wrong, just not reading the documentation close enough. This is the documented behavior. This is because ->define will return several different results, one or more from each dictionnary that it has. For instance, one of the definitions for "moose" can be gotten via:

my $d = Net::Dict->new(''); print $d->define("moose")->[0][1];

perl -pe '"I lo*`+$^X$\"$]!$/"=~m%(.*)%s;$_=$1;y^`+*^e v^#$&V"+@( NO CARRIER'