#!/usr/bin/perl -w # # simple.pl - a simple example illustrating use of Net::Dict # # This is a simple Net::Dict which illustrates basic use # to get word definitions. Usage: # # simple.pl myhost.org # simple.pl # # if no hostname is given, then default to dict.org # # The user is then prompted for words. We look up definitions # and display all that we get back. # # This is based on an example from Jose Joao Dias de Almeida <jj@di.uminho.pt> # # $Id: simple.pl,v 1.1.1.1 2003/04/26 22:59:11 neilb Exp $ # use strict; use Net::Dict; my $dict; my $host; my $prompt = "define> "; my $eref; my $entry; my $db; my $definition; #----------------------------------------------------------------------- # Turn off buffering on STDOUT #----------------------------------------------------------------------- $| = 1; #----------------------------------------------------------------------- # Create instance of Net::Dict, connecting either to a user-specified # dict server, or defaulting to dict.org #----------------------------------------------------------------------- $host = @ARGV > 0 ? shift @ARGV : 'dict.org'; print "Connecting to $host ..."; $dict = Net::Dict->new($host); print "\n"; #----------------------------------------------------------------------- # Let the user repeatedly enter words, which we then look up. #----------------------------------------------------------------------- print $prompt; while (<>) { chomp; next unless $_; #------------------------------------------------------------------- # The define() method returns an array reference. # The array has one entry for each definition found. # If the referenced array has no entries, then there were no # definitions in any of the dictionaries on the server. #------------------------------------------------------------------- $eref = $dict->define($_); if (@$eref == 0) { print " no definition for \"$_\"\n"; } else { #--------------------------------------------------------------- # Each entry is another array reference. The referenced array # for each entry has two elements: # $db - the name of the database (ie dictionary) # $definition - the text of the definition #--------------------------------------------------------------- foreach $entry (@$eref) { ($db, $definition) = @$entry; print "\n-----(from: $db)---------------------------\n", $definition; } } print $prompt; }