This and other RFCs are available on the web at
  http://tmtowtdi.perl.org/rfc/

=head1 TITLE

Bring Documentation Closer To Whatever It Documents

=head1 VERSION

  Maintainer: Jarkko Hietaniemi <[EMAIL PROTECTED]>
  Date: 05 Aug 2000
  Version: 1
  Mailing List: [EMAIL PROTECTED]
  Number: 44

=head1 ABSTRACT

The current pod has one serious problem: it is very weakly tied to the
whatever it is documenting.  A human can make a good guess based on
proximity and content but for more automatic document extraction the
situation is hopeless.

This RFC proposes some syntactical possibilities of binding the
documentation to the things they try to document.

=head1 DESCRIPTION

Both ways of binding the documentation to its main thing and
retrieving the documentation are needed.  Below I propose some
possible syntaxes.  The proposals are by no means definitive or final,
but the key issue is that the documentation really must be visually
close to its documentee.  Any other way is terminally doomed to
failure because then the document and the documentee B<will> drift out
of sync.

=head2 DOCUMENTING A FUNCTION

        sub foo "Snarfle the bogogoozer.  The first argument is ..." { ... }

=head2 DOCUMENTING THE ARGUMENTS OF A FUNCTION

This example assumes a certain not-yet-existing-or-agreed upon syntax
for "true" named parameters.  Pay no attention to details.

        sub foo (my $bogogoozer "The victim.", my %options "How to snarfle.")
        { ... }

=head2 DOCUMENTING A LEXICAL VARIABLE

        my $literal "How seriously to take the proposal.";

=head2 DOCUMENTING A PACKAGE VARIABLE

        $debug_level = 0 "The initial debug level is no debugging, or zero.";

=head2 RETRIEVING THE DOCUMENTATION OF A FUNCTION

    print "This is how to snarfle a bogogoozer: ", documentation(\&foo), "\n";

This would retrieve and output the string "Snarfle the bogogoozer.
The first argument is ...".

=head2 RETRIEVING THE DOCUMENTATION OF A VARIABLE

    print "This is how literally to take this proposal: ",
          documentation(\$literal), "\n";

=head1 IMPLEMENTATION

During parsing the documentation needs to be attached to the thing it
belongs to.

=head2 FURTHER IDEAS

If somebody wants to write documentation in several different
languages (and encodings?)  a way to tag a piece of documentation with
attributes would be desirable.

Attributes on the documentation could also be used to differentiate
the documentation to several different classes/types/levels.

=head1 REFERENCES

        
        

Reply via email to