<P>which puts you into a readline interface. You will have the most fun if
you install Term::ReadKey and Term::ReadLine to enjoy both history and
command completion.</P>
<P>Once you are on the command line, type 'h' and the rest should be
self-explanatory.</P>
<P>The most common uses of the interactive modes are</P>
<DL>
<DT><STRONG><A NAME="item_Searching_for_authors%2C_bundles%2C_distribution_f">Searching for authors, bundles, distribution files and modules</A></STRONG><BR>
<DD>
There are corresponding one-letter commands <CODE>a</CODE>, <CODE>b</CODE>, <CODE>d</CODE>, and <A HREF="../lib/Pod/perlfunc.html#item_m"><CODE>m</CODE></A>
for each of the four categories and another, <CODE>i</CODE> for any of the
mentioned four. Each of the four entities is implemented as a class
with slightly differing methods for displaying an object.
<P>Arguments you pass to these commands are either strings exactly matching
the identification string of an object or regular expressions that are
then matched case-insensitively against various attributes of the
objects. The parser recognizes a regular expression only if you
enclose it between two slashes.</P>
<P>The principle is that the number of found objects influences how an
item is displayed. If the search finds one item, the result is
displayed with the rather verbose method <CODE>as_string</CODE>, but if we find
more than one, we display each object with the terse method
<as_glimpse>.</P>
<P></P>
<DT><STRONG><A NAME="item_make%2C_test%2C_install%2C_clean_modules_or_distri">make, test, install, clean modules or distributions</A></STRONG><BR>
<DD>
These commands take any number of arguments and investigate what is
necessary to perform the action. If the argument is a distribution
file name (recognized by embedded slashes), it is processed. If it is
a module, CPAN determines the distribution file in which this module
is included and processes that, following any dependencies named in
the module's Makefile.PL (this behavior is controlled by
<EM>prerequisites_policy</EM>.)
<P>Any <CODE>make</CODE> or <CODE>test</CODE> are run unconditionally. An</P>
<PRE>
install <distribution_file></PRE>
<P>also is run unconditionally. But for</P>
<PRE>
install <module></PRE>
<P>CPAN checks if an install is actually needed for it and prints
<EM>module up to date</EM> in the case that the distribution file containing
the module doesn&39;t need to be updated.</P>
<P>CPAN also keeps track of what it has done within the current session
and doesn&39;t try to build a package a second time regardless if it
succeeded or not. The <CODE>force</CODE> command takes as a first argument the
method to invoke (currently: <CODE>make</CODE>, <CODE>test</CODE>, or <CODE>install</CODE>) and executes the
command from scratch.</P>
<P>Example:</P>
<PRE>
cpan> install OpenGL
OpenGL is up to date.
cpan> force install OpenGL
Running make
OpenGL-0.4/
OpenGL-0.4/COPYRIGHT
[...]</PRE>
<P>A <CODE>clean</CODE> command results in a</P>
<PRE>
make clean</PRE>
<P>being executed within the distribution file's working directory.</P>
<P></P>
<DT><STRONG><A NAME="item_get%2C_readme%2C_look_module_or_distribution">get, readme, look module or distribution</A></STRONG><BR>
<DD>
<CODE>get</CODE> downloads a distribution file without further action. <CODE>readme</CODE>
displays the README file of the associated distribution. <CODE>Look</CODE> gets
and untars (if not yet done) the distribution file, changes to the
appropriate directory and opens a subshell process in that directory.