The following module was proposed for inclusion in the Module List:

  modid:       Net::Gopher
  DSLIP:       adphg
  description: The Perl Gopher/Gopher+ client API.
  userid:      WGDAVIS (William G. Davis)
  chapterid:    5 (Networking_Devices_IPC)
  communities:

  similar:
    LWP::Protocol::gopher

  rationale:

    Back in the heyday of the Gopher protocol, much Gopher software was
    written for Perl. Unfortunately, that was in the pre-95 era and,
    more specifically, in the pre-Perl 5 era. Thus, much of this code is
    undocumented, inefficient, archaic, and not even technically in the
    form of a module (most are *.pl files meant to be require()'ed).
    Furthermore, almost none of the code actually supports Gopher+, the
    enhancements to the Gopher protocol.

    The more recent versions of the libwww-perl (the ones that support
    HTTP 1.1) do at least (partially) support the Gopher protocol. But
    there are problems with it; as far as Gopher goes, LWP is extremely
    primitive.

    First, LWP doesn't support Gopher+, only Gopher.

    Second, it converts Gopher menus and gopher search types to HTML
    (Netscape, Mozilla, and IE do this as well). While I understand that
    LWP is a Web library is this conversion is intended to help those
    writing web clients who happen upon a gopher:// URL, it makes it
    extremely difficult to work with for those who intend only to
    communicate with Gopher servers since Gopherspace is an almost
    entirely HTML-free realm and this conversion then requires the user
    to use an HTML parser.

    Third, LWP doesn't provide any way to make sure that a file
    downloaded was completely downloaded (checking for the period on a
    line by itself).

    Fourth, LWP only enables communication with Gopher servers via URL;
    you give LWP a gopher:// URL and it does the rest. While this again
    may be helpful for people writing WWW clients, this is not method of
    communication described in RFC 1436 : The Internet Gopher Protocol
    (which in fact doesn't even once mention URIs or URLs), and it's
    extremely limiting.

    What I am in the process of doing with Net::Gopher is creating a
    modern, object-oriented, Gopher/Gopher+ client API for Perl that
    will enable Perl hackers to easily communicate with both Gopher as
    well as Gopher+ servers from their Perl scripts.

    So far, Net::Gopher's interface mimics that of other Net::* modules
    such as Net::FTP and Net::SMTP, and should be far more familiar and
    comfortable than LWP to those used to the Gopher protocol and early
    pre-Web gopher clients. Net::Gopher corrects all of the problems
    which I enumerated above, and provides a wealth of new functionality
    including a Gopher menu parser to parse gopher menus and return the
    item type, selector, host, and port of each item in the form of a
    data structure.

  enteredby:   WGDAVIS (William G. Davis)
  enteredon:   Sun Jul  6 06:40:21 2003 GMT

The resulting entry would be:

Net::
::Gopher          adphg The Perl Gopher/Gopher+ client API.          WGDAVIS


Thanks for registering,
-- 
The PAUSE

PS: The following links are only valid for module list maintainers:

Registration form with editing capabilities:
  
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=bc200000_6f72fb2993e380b6&SUBMIT_pause99_add_mod_preview=1
Immediate (one click) registration:
  
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=bc200000_6f72fb2993e380b6&SUBMIT_pause99_add_mod_insertit=1

Reply via email to