1*0Sstevel@tonic-gate=head1 NAME
2*0Sstevel@tonic-gate
3*0Sstevel@tonic-gateperlmodinstall - Installing CPAN Modules
4*0Sstevel@tonic-gate
5*0Sstevel@tonic-gate=head1 DESCRIPTION
6*0Sstevel@tonic-gate
7*0Sstevel@tonic-gateYou can think of a module as the fundamental unit of reusable Perl
8*0Sstevel@tonic-gatecode; see L<perlmod> for details.  Whenever anyone creates a chunk of
9*0Sstevel@tonic-gatePerl code that they think will be useful to the world, they register
10*0Sstevel@tonic-gateas a Perl developer at http://www.cpan.org/modules/04pause.html
11*0Sstevel@tonic-gateso that they can then upload their code to the CPAN.  The CPAN is the
12*0Sstevel@tonic-gateComprehensive Perl Archive Network and can be accessed at
13*0Sstevel@tonic-gatehttp://www.cpan.org/ , and searched at http://search.cpan.org/ .
14*0Sstevel@tonic-gate
15*0Sstevel@tonic-gateThis documentation is for people who want to download CPAN modules
16*0Sstevel@tonic-gateand install them on their own computer.
17*0Sstevel@tonic-gate
18*0Sstevel@tonic-gate=head2 PREAMBLE
19*0Sstevel@tonic-gate
20*0Sstevel@tonic-gateFirst, are you sure that the module isn't already on your system?  Try
21*0Sstevel@tonic-gateC<perl -MFoo -e 1>.  (Replace "Foo" with the name of the module; for
22*0Sstevel@tonic-gateinstance, C<perl -MCGI::Carp -e 1>.
23*0Sstevel@tonic-gate
24*0Sstevel@tonic-gateIf you don't see an error message, you have the module.  (If you do
25*0Sstevel@tonic-gatesee an error message, it's still possible you have the module, but
26*0Sstevel@tonic-gatethat it's not in your path, which you can display with C<perl -e
27*0Sstevel@tonic-gate"print qq(@INC)">.)  For the remainder of this document, we'll assume
28*0Sstevel@tonic-gatethat you really honestly truly lack an installed module, but have
29*0Sstevel@tonic-gatefound it on the CPAN.
30*0Sstevel@tonic-gate
31*0Sstevel@tonic-gateSo now you have a file ending in .tar.gz (or, less often, .zip).  You
32*0Sstevel@tonic-gateknow there's a tasty module inside.  There are four steps you must now
33*0Sstevel@tonic-gatetake:
34*0Sstevel@tonic-gate
35*0Sstevel@tonic-gate=over 5
36*0Sstevel@tonic-gate
37*0Sstevel@tonic-gate=item B<DECOMPRESS> the file
38*0Sstevel@tonic-gate
39*0Sstevel@tonic-gate=item B<UNPACK> the file into a directory
40*0Sstevel@tonic-gate
41*0Sstevel@tonic-gate=item B<BUILD> the module (sometimes unnecessary)
42*0Sstevel@tonic-gate
43*0Sstevel@tonic-gate=item B<INSTALL> the module.
44*0Sstevel@tonic-gate
45*0Sstevel@tonic-gate=back
46*0Sstevel@tonic-gate
47*0Sstevel@tonic-gateHere's how to perform each step for each operating system.  This is
48*0Sstevel@tonic-gate<not> a substitute for reading the README and INSTALL files that
49*0Sstevel@tonic-gatemight have come with your module!
50*0Sstevel@tonic-gate
51*0Sstevel@tonic-gateAlso note that these instructions are tailored for installing the
52*0Sstevel@tonic-gatemodule into your system's repository of Perl modules -- but you can
53*0Sstevel@tonic-gateinstall modules into any directory you wish.  For instance, where I
54*0Sstevel@tonic-gatesay C<perl Makefile.PL>, you can substitute C<perl Makefile.PL
55*0Sstevel@tonic-gatePREFIX=/my/perl_directory> to install the modules into
56*0Sstevel@tonic-gateC</my/perl_directory>.  Then you can use the modules from your Perl
57*0Sstevel@tonic-gateprograms with C<use lib "/my/perl_directory/lib/site_perl";> or
58*0Sstevel@tonic-gatesometimes just C<use "/my/perl_directory";>.  If you're on a system
59*0Sstevel@tonic-gatethat requires superuser/root access to install modules into the
60*0Sstevel@tonic-gatedirectories you see when you type C<perl -e "print qq(@INC)">, you'll
61*0Sstevel@tonic-gatewant to install them into a local directory (such as your home
62*0Sstevel@tonic-gatedirectory) and use this approach.
63*0Sstevel@tonic-gate
64*0Sstevel@tonic-gate=over 4
65*0Sstevel@tonic-gate
66*0Sstevel@tonic-gate=item *
67*0Sstevel@tonic-gate
68*0Sstevel@tonic-gateB<If you're on a Unix or Linux system,>
69*0Sstevel@tonic-gate
70*0Sstevel@tonic-gateYou can use Andreas Koenig's CPAN module
71*0Sstevel@tonic-gate( http://www.cpan.org/modules/by-module/CPAN )
72*0Sstevel@tonic-gateto automate the following steps, from DECOMPRESS through INSTALL.
73*0Sstevel@tonic-gate
74*0Sstevel@tonic-gateA. DECOMPRESS
75*0Sstevel@tonic-gate
76*0Sstevel@tonic-gateDecompress the file with C<gzip -d yourmodule.tar.gz>
77*0Sstevel@tonic-gate
78*0Sstevel@tonic-gateYou can get gzip from ftp://prep.ai.mit.edu/pub/gnu/
79*0Sstevel@tonic-gate
80*0Sstevel@tonic-gateOr, you can combine this step with the next to save disk space:
81*0Sstevel@tonic-gate
82*0Sstevel@tonic-gate     gzip -dc yourmodule.tar.gz | tar -xof -
83*0Sstevel@tonic-gate
84*0Sstevel@tonic-gateB. UNPACK
85*0Sstevel@tonic-gate
86*0Sstevel@tonic-gateUnpack the result with C<tar -xof yourmodule.tar>
87*0Sstevel@tonic-gate
88*0Sstevel@tonic-gateC. BUILD
89*0Sstevel@tonic-gate
90*0Sstevel@tonic-gateGo into the newly-created directory and type:
91*0Sstevel@tonic-gate
92*0Sstevel@tonic-gate      perl Makefile.PL
93*0Sstevel@tonic-gate      make test
94*0Sstevel@tonic-gate
95*0Sstevel@tonic-gateor
96*0Sstevel@tonic-gate
97*0Sstevel@tonic-gate      perl Makefile.PL PREFIX=/my/perl_directory
98*0Sstevel@tonic-gate
99*0Sstevel@tonic-gateto install it locally.  (Remember that if you do this, you'll have to
100*0Sstevel@tonic-gateput C<use lib "/my/perl_directory";> near the top of the program that
101*0Sstevel@tonic-gateis to use this module.
102*0Sstevel@tonic-gate
103*0Sstevel@tonic-gateD. INSTALL
104*0Sstevel@tonic-gate
105*0Sstevel@tonic-gateWhile still in that directory, type:
106*0Sstevel@tonic-gate
107*0Sstevel@tonic-gate      make install
108*0Sstevel@tonic-gate
109*0Sstevel@tonic-gateMake sure you have the appropriate permissions to install the module
110*0Sstevel@tonic-gatein your Perl 5 library directory.  Often, you'll need to be root.
111*0Sstevel@tonic-gate
112*0Sstevel@tonic-gateThat's all you need to do on Unix systems with dynamic linking.
113*0Sstevel@tonic-gateMost Unix systems have dynamic linking -- if yours doesn't, or if for
114*0Sstevel@tonic-gateanother reason you have a statically-linked perl, B<and> the
115*0Sstevel@tonic-gatemodule requires compilation, you'll need to build a new Perl binary
116*0Sstevel@tonic-gatethat includes the module.  Again, you'll probably need to be root.
117*0Sstevel@tonic-gate
118*0Sstevel@tonic-gate=item *
119*0Sstevel@tonic-gate
120*0Sstevel@tonic-gateB<If you're running ActivePerl (Win95/98/2K/NT/XP, Linux, Solaris)>
121*0Sstevel@tonic-gate
122*0Sstevel@tonic-gateFirst, type C<ppm> from a shell and see whether ActiveState's PPM
123*0Sstevel@tonic-gaterepository has your module.  If so, you can install it with C<ppm> and
124*0Sstevel@tonic-gateyou won't have to bother with any of the other steps here.  You might
125*0Sstevel@tonic-gatebe able to use the CPAN instructions from the "Unix or Linux" section
126*0Sstevel@tonic-gateabove as well; give it a try.  Otherwise, you'll have to follow the
127*0Sstevel@tonic-gatesteps below.
128*0Sstevel@tonic-gate
129*0Sstevel@tonic-gate   A. DECOMPRESS
130*0Sstevel@tonic-gate
131*0Sstevel@tonic-gateYou can use the shareware Winzip ( http://www.winzip.com ) to
132*0Sstevel@tonic-gatedecompress and unpack modules.
133*0Sstevel@tonic-gate
134*0Sstevel@tonic-gate   B. UNPACK
135*0Sstevel@tonic-gate
136*0Sstevel@tonic-gateIf you used WinZip, this was already done for you.
137*0Sstevel@tonic-gate
138*0Sstevel@tonic-gate   C. BUILD
139*0Sstevel@tonic-gate
140*0Sstevel@tonic-gateYou'll need the C<nmake> utility, available at
141*0Sstevel@tonic-gateftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe
142*0Sstevel@tonic-gateor dmake, available on CPAN.
143*0Sstevel@tonic-gatehttp://search.cpan.org/dist/dmake/
144*0Sstevel@tonic-gate
145*0Sstevel@tonic-gateDoes the module require compilation (i.e. does it have files that end
146*0Sstevel@tonic-gatein .xs, .c, .h, .y, .cc, .cxx, or .C)?  If it does, life is now
147*0Sstevel@tonic-gateofficially tough for you, because you have to compile the module
148*0Sstevel@tonic-gateyourself -- no easy feat on Windows.  You'll need a compiler such as
149*0Sstevel@tonic-gateVisual C++.  Alternatively, you can download a pre-built PPM package
150*0Sstevel@tonic-gatefrom ActiveState.
151*0Sstevel@tonic-gatehttp://aspn.activestate.com/ASPN/Downloads/ActivePerl/PPM/
152*0Sstevel@tonic-gate
153*0Sstevel@tonic-gateGo into the newly-created directory and type:
154*0Sstevel@tonic-gate
155*0Sstevel@tonic-gate      perl Makefile.PL
156*0Sstevel@tonic-gate      nmake test
157*0Sstevel@tonic-gate
158*0Sstevel@tonic-gate
159*0Sstevel@tonic-gate   D. INSTALL
160*0Sstevel@tonic-gate
161*0Sstevel@tonic-gateWhile still in that directory, type:
162*0Sstevel@tonic-gate
163*0Sstevel@tonic-gate      nmake install
164*0Sstevel@tonic-gate
165*0Sstevel@tonic-gate=item *
166*0Sstevel@tonic-gate
167*0Sstevel@tonic-gateB<If you're using a Macintosh,>
168*0Sstevel@tonic-gate
169*0Sstevel@tonic-gate
170*0Sstevel@tonic-gateA. DECOMPRESS
171*0Sstevel@tonic-gate
172*0Sstevel@tonic-gateFirst, make sure you have the latest B<cpan-mac> distribution (
173*0Sstevel@tonic-gatehttp://www.cpan.org/authors/id/CNANDOR/ ), which has utilities for
174*0Sstevel@tonic-gatedoing all of the steps.  Read the cpan-mac directions carefully and
175*0Sstevel@tonic-gateinstall it.  If you choose not to use cpan-mac for some reason, there
176*0Sstevel@tonic-gateare alternatives listed here.
177*0Sstevel@tonic-gate
178*0Sstevel@tonic-gateAfter installing cpan-mac, drop the module archive on the
179*0Sstevel@tonic-gateB<untarzipme> droplet, which will decompress and unpack for you.
180*0Sstevel@tonic-gate
181*0Sstevel@tonic-gateB<Or>, you can either use the shareware B<StuffIt Expander> program
182*0Sstevel@tonic-gate( http://www.aladdinsys.com/expander/ )
183*0Sstevel@tonic-gatein combination with B<DropStuff with Expander Enhancer>
184*0Sstevel@tonic-gate( http://www.aladdinsys.com/dropstuff/ )
185*0Sstevel@tonic-gateor the freeware B<MacGzip> program (
186*0Sstevel@tonic-gatehttp://persephone.cps.unizar.es/general/gente/spd/gzip/gzip.html ).
187*0Sstevel@tonic-gate
188*0Sstevel@tonic-gateB. UNPACK
189*0Sstevel@tonic-gate
190*0Sstevel@tonic-gateIf you're using untarzipme or StuffIt, the archive should be extracted
191*0Sstevel@tonic-gatenow.  B<Or>, you can use the freeware B<suntar> or I<Tar> (
192*0Sstevel@tonic-gatehttp://hyperarchive.lcs.mit.edu/HyperArchive/Archive/cmp/ ).
193*0Sstevel@tonic-gate
194*0Sstevel@tonic-gateC. BUILD
195*0Sstevel@tonic-gate
196*0Sstevel@tonic-gateCheck the contents of the distribution.
197*0Sstevel@tonic-gateRead the module's documentation, looking for
198*0Sstevel@tonic-gatereasons why you might have trouble using it with MacPerl.  Look for
199*0Sstevel@tonic-gateF<.xs> and F<.c> files, which normally denote that the distribution
200*0Sstevel@tonic-gatemust be compiled, and you cannot install it "out of the box."
201*0Sstevel@tonic-gate(See L<"PORTABILITY">.)
202*0Sstevel@tonic-gate
203*0Sstevel@tonic-gateIf a module does not work on MacPerl but should, or needs to be
204*0Sstevel@tonic-gatecompiled, see if the module exists already as a port on the
205*0Sstevel@tonic-gateMacPerl Module Porters site ( http://pudge.net/mmp/ ).
206*0Sstevel@tonic-gateFor more information on doing XS with MacPerl yourself, see
207*0Sstevel@tonic-gateArved Sandstrom's XS tutorial ( http://macperl.com/depts/Tutorials/ ),
208*0Sstevel@tonic-gateand then consider uploading your binary to the CPAN and
209*0Sstevel@tonic-gateregistering it on the MMP site.
210*0Sstevel@tonic-gate
211*0Sstevel@tonic-gateD. INSTALL
212*0Sstevel@tonic-gate
213*0Sstevel@tonic-gateIf you are using cpan-mac, just drop the folder on the
214*0Sstevel@tonic-gateB<installme> droplet, and use the module.
215*0Sstevel@tonic-gate
216*0Sstevel@tonic-gateB<Or>, if you aren't using cpan-mac, do some manual labor.
217*0Sstevel@tonic-gate
218*0Sstevel@tonic-gateMake sure the newlines for the modules are in Mac format, not Unix format.
219*0Sstevel@tonic-gateIf they are not then you might have decompressed them incorrectly.  Check
220*0Sstevel@tonic-gateyour decompression and unpacking utilities settings to make sure they are
221*0Sstevel@tonic-gatetranslating text files properly.
222*0Sstevel@tonic-gate
223*0Sstevel@tonic-gateAs a last resort, you can use the perl one-liner:
224*0Sstevel@tonic-gate
225*0Sstevel@tonic-gate    perl -i.bak -pe 's/(?:\015)?\012/\015/g' <filenames>
226*0Sstevel@tonic-gate
227*0Sstevel@tonic-gateon the source files.
228*0Sstevel@tonic-gate
229*0Sstevel@tonic-gateThen move the files (probably just the F<.pm> files, though there
230*0Sstevel@tonic-gatemay be some additional ones, too; check the module documentation)
231*0Sstevel@tonic-gateto their final destination: This will
232*0Sstevel@tonic-gatemost likely be in C<$ENV{MACPERL}site_lib:> (i.e.,
233*0Sstevel@tonic-gateC<HD:MacPerl folder:site_lib:>).  You can add new paths to
234*0Sstevel@tonic-gatethe default C<@INC> in the Preferences menu item in the
235*0Sstevel@tonic-gateMacPerl application (C<$ENV{MACPERL}site_lib:> is added
236*0Sstevel@tonic-gateautomagically).  Create whatever directory structures are required
237*0Sstevel@tonic-gate(i.e., for C<Some::Module>, create
238*0Sstevel@tonic-gateC<$ENV{MACPERL}site_lib:Some:> and put
239*0Sstevel@tonic-gateC<Module.pm> in that directory).
240*0Sstevel@tonic-gate
241*0Sstevel@tonic-gateThen run the following script (or something like it):
242*0Sstevel@tonic-gate
243*0Sstevel@tonic-gate     #!perl -w
244*0Sstevel@tonic-gate     use AutoSplit;
245*0Sstevel@tonic-gate     my $dir = "${MACPERL}site_perl";
246*0Sstevel@tonic-gate     autosplit("$dir:Some:Module.pm", "$dir:auto", 0, 1, 1);
247*0Sstevel@tonic-gate
248*0Sstevel@tonic-gate=item *
249*0Sstevel@tonic-gate
250*0Sstevel@tonic-gateB<If you're on the DJGPP port of DOS,>
251*0Sstevel@tonic-gate
252*0Sstevel@tonic-gate   A. DECOMPRESS
253*0Sstevel@tonic-gate
254*0Sstevel@tonic-gatedjtarx ( ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2/ )
255*0Sstevel@tonic-gatewill both uncompress and unpack.
256*0Sstevel@tonic-gate
257*0Sstevel@tonic-gate   B. UNPACK
258*0Sstevel@tonic-gate
259*0Sstevel@tonic-gateSee above.
260*0Sstevel@tonic-gate
261*0Sstevel@tonic-gate   C. BUILD
262*0Sstevel@tonic-gate
263*0Sstevel@tonic-gateGo into the newly-created directory and type:
264*0Sstevel@tonic-gate
265*0Sstevel@tonic-gate      perl Makefile.PL
266*0Sstevel@tonic-gate      make test
267*0Sstevel@tonic-gate
268*0Sstevel@tonic-gateYou will need the packages mentioned in F<README.dos>
269*0Sstevel@tonic-gatein the Perl distribution.
270*0Sstevel@tonic-gate
271*0Sstevel@tonic-gate   D. INSTALL
272*0Sstevel@tonic-gate
273*0Sstevel@tonic-gateWhile still in that directory, type:
274*0Sstevel@tonic-gate
275*0Sstevel@tonic-gate     make install
276*0Sstevel@tonic-gate
277*0Sstevel@tonic-gateYou will need the packages mentioned in F<README.dos> in the Perl distribution.
278*0Sstevel@tonic-gate
279*0Sstevel@tonic-gate=item *
280*0Sstevel@tonic-gate
281*0Sstevel@tonic-gateB<If you're on OS/2,>
282*0Sstevel@tonic-gate
283*0Sstevel@tonic-gateGet the EMX development suite and gzip/tar, from either Hobbes (
284*0Sstevel@tonic-gatehttp://hobbes.nmsu.edu ) or Leo ( http://www.leo.org ), and then follow
285*0Sstevel@tonic-gatethe instructions for Unix.
286*0Sstevel@tonic-gate
287*0Sstevel@tonic-gate=item *
288*0Sstevel@tonic-gate
289*0Sstevel@tonic-gateB<If you're on VMS,>
290*0Sstevel@tonic-gate
291*0Sstevel@tonic-gateWhen downloading from CPAN, save your file with a C<.tgz>
292*0Sstevel@tonic-gateextension instead of C<.tar.gz>.  All other periods in the
293*0Sstevel@tonic-gatefilename should be replaced with underscores.  For example,
294*0Sstevel@tonic-gateC<Your-Module-1.33.tar.gz> should be downloaded as
295*0Sstevel@tonic-gateC<Your-Module-1_33.tgz>.
296*0Sstevel@tonic-gate
297*0Sstevel@tonic-gateA. DECOMPRESS
298*0Sstevel@tonic-gate
299*0Sstevel@tonic-gateType
300*0Sstevel@tonic-gate
301*0Sstevel@tonic-gate    gzip -d Your-Module.tgz
302*0Sstevel@tonic-gate
303*0Sstevel@tonic-gateor, for zipped modules, type
304*0Sstevel@tonic-gate
305*0Sstevel@tonic-gate    unzip Your-Module.zip
306*0Sstevel@tonic-gate
307*0Sstevel@tonic-gateExecutables for gzip, zip, and VMStar:
308*0Sstevel@tonic-gate
309*0Sstevel@tonic-gate    http://www.openvms.digital.com/freeware/
310*0Sstevel@tonic-gate    http://www.crinoid.com/utils/
311*0Sstevel@tonic-gate
312*0Sstevel@tonic-gateand their source code:
313*0Sstevel@tonic-gate
314*0Sstevel@tonic-gate    http://www.fsf.org/order/ftp.html
315*0Sstevel@tonic-gate
316*0Sstevel@tonic-gateNote that GNU's gzip/gunzip is not the same as Info-ZIP's zip/unzip
317*0Sstevel@tonic-gatepackage.  The former is a simple compression tool; the latter permits
318*0Sstevel@tonic-gatecreation of multi-file archives.
319*0Sstevel@tonic-gate
320*0Sstevel@tonic-gateB. UNPACK
321*0Sstevel@tonic-gate
322*0Sstevel@tonic-gateIf you're using VMStar:
323*0Sstevel@tonic-gate
324*0Sstevel@tonic-gate     VMStar xf Your-Module.tar
325*0Sstevel@tonic-gate
326*0Sstevel@tonic-gateOr, if you're fond of VMS command syntax:
327*0Sstevel@tonic-gate
328*0Sstevel@tonic-gate     tar/extract/verbose Your_Module.tar
329*0Sstevel@tonic-gate
330*0Sstevel@tonic-gateC. BUILD
331*0Sstevel@tonic-gate
332*0Sstevel@tonic-gateMake sure you have MMS (from Digital) or the freeware MMK ( available
333*0Sstevel@tonic-gatefrom MadGoat at http://www.madgoat.com ).  Then type this to create
334*0Sstevel@tonic-gatethe DESCRIP.MMS for the module:
335*0Sstevel@tonic-gate
336*0Sstevel@tonic-gate    perl Makefile.PL
337*0Sstevel@tonic-gate
338*0Sstevel@tonic-gateNow you're ready to build:
339*0Sstevel@tonic-gate
340*0Sstevel@tonic-gate    mms test
341*0Sstevel@tonic-gate
342*0Sstevel@tonic-gateSubstitute C<mmk> for C<mms> above if you're using MMK.
343*0Sstevel@tonic-gate
344*0Sstevel@tonic-gateD. INSTALL
345*0Sstevel@tonic-gate
346*0Sstevel@tonic-gateType
347*0Sstevel@tonic-gate
348*0Sstevel@tonic-gate    mms install
349*0Sstevel@tonic-gate
350*0Sstevel@tonic-gateSubstitute C<mmk> for C<mms> above if you're using MMK.
351*0Sstevel@tonic-gate
352*0Sstevel@tonic-gate=item *
353*0Sstevel@tonic-gate
354*0Sstevel@tonic-gateB<If you're on MVS>,
355*0Sstevel@tonic-gate
356*0Sstevel@tonic-gateIntroduce the F<.tar.gz> file into an HFS as binary; don't translate from
357*0Sstevel@tonic-gateASCII to EBCDIC.
358*0Sstevel@tonic-gate
359*0Sstevel@tonic-gateA. DECOMPRESS
360*0Sstevel@tonic-gate
361*0Sstevel@tonic-gateDecompress the file with C<gzip -d yourmodule.tar.gz>
362*0Sstevel@tonic-gate
363*0Sstevel@tonic-gateYou can get gzip from
364*0Sstevel@tonic-gatehttp://www.s390.ibm.com/products/oe/bpxqp1.html
365*0Sstevel@tonic-gate
366*0Sstevel@tonic-gateB. UNPACK
367*0Sstevel@tonic-gate
368*0Sstevel@tonic-gateUnpack the result with
369*0Sstevel@tonic-gate
370*0Sstevel@tonic-gate     pax -o to=IBM-1047,from=ISO8859-1 -r < yourmodule.tar
371*0Sstevel@tonic-gate
372*0Sstevel@tonic-gateThe BUILD and INSTALL steps are identical to those for Unix.  Some
373*0Sstevel@tonic-gatemodules generate Makefiles that work better with GNU make, which is
374*0Sstevel@tonic-gateavailable from http://www.mks.com/s390/gnu/
375*0Sstevel@tonic-gate
376*0Sstevel@tonic-gate=back
377*0Sstevel@tonic-gate
378*0Sstevel@tonic-gate=head1 PORTABILITY
379*0Sstevel@tonic-gate
380*0Sstevel@tonic-gateNote that not all modules will work with on all platforms.
381*0Sstevel@tonic-gateSee L<perlport> for more information on portability issues.
382*0Sstevel@tonic-gateRead the documentation to see if the module will work on your
383*0Sstevel@tonic-gatesystem.  There are basically three categories
384*0Sstevel@tonic-gateof modules that will not work "out of the box" with all
385*0Sstevel@tonic-gateplatforms (with some possibility of overlap):
386*0Sstevel@tonic-gate
387*0Sstevel@tonic-gate=over 4
388*0Sstevel@tonic-gate
389*0Sstevel@tonic-gate=item *
390*0Sstevel@tonic-gate
391*0Sstevel@tonic-gateB<Those that should, but don't.>  These need to be fixed; consider
392*0Sstevel@tonic-gatecontacting the author and possibly writing a patch.
393*0Sstevel@tonic-gate
394*0Sstevel@tonic-gate=item *
395*0Sstevel@tonic-gate
396*0Sstevel@tonic-gateB<Those that need to be compiled, where the target platform
397*0Sstevel@tonic-gatedoesn't have compilers readily available.>  (These modules contain
398*0Sstevel@tonic-gateF<.xs> or F<.c> files, usually.)  You might be able to find
399*0Sstevel@tonic-gateexisting binaries on the CPAN or elsewhere, or you might
400*0Sstevel@tonic-gatewant to try getting compilers and building it yourself, and then
401*0Sstevel@tonic-gaterelease the binary for other poor souls to use.
402*0Sstevel@tonic-gate
403*0Sstevel@tonic-gate=item *
404*0Sstevel@tonic-gate
405*0Sstevel@tonic-gateB<Those that are targeted at a specific platform.>
406*0Sstevel@tonic-gate(Such as the Win32:: modules.)  If the module is targeted
407*0Sstevel@tonic-gatespecifically at a platform other than yours, you're out
408*0Sstevel@tonic-gateof luck, most likely.
409*0Sstevel@tonic-gate
410*0Sstevel@tonic-gate=back
411*0Sstevel@tonic-gate
412*0Sstevel@tonic-gate
413*0Sstevel@tonic-gate
414*0Sstevel@tonic-gateCheck the CPAN Testers if a module should work with your platform
415*0Sstevel@tonic-gatebut it doesn't behave as you'd expect, or you aren't sure whether or
416*0Sstevel@tonic-gatenot a module will work under your platform.  If the module you want
417*0Sstevel@tonic-gateisn't listed there, you can test it yourself and let CPAN Testers know,
418*0Sstevel@tonic-gateyou can join CPAN Testers, or you can request it be tested.
419*0Sstevel@tonic-gate
420*0Sstevel@tonic-gate    http://testers.cpan.org/
421*0Sstevel@tonic-gate
422*0Sstevel@tonic-gate
423*0Sstevel@tonic-gate=head1 HEY
424*0Sstevel@tonic-gate
425*0Sstevel@tonic-gateIf you have any suggested changes for this page, let me know.  Please
426*0Sstevel@tonic-gatedon't send me mail asking for help on how to install your modules.
427*0Sstevel@tonic-gateThere are too many modules, and too few Orwants, for me to be able to
428*0Sstevel@tonic-gateanswer or even acknowledge all your questions.  Contact the module
429*0Sstevel@tonic-gateauthor instead, or post to comp.lang.perl.modules, or ask someone
430*0Sstevel@tonic-gatefamiliar with Perl on your operating system.
431*0Sstevel@tonic-gate
432*0Sstevel@tonic-gate=head1 AUTHOR
433*0Sstevel@tonic-gate
434*0Sstevel@tonic-gateJon Orwant
435*0Sstevel@tonic-gate
436*0Sstevel@tonic-gateorwant@medita.mit.edu
437*0Sstevel@tonic-gate
438*0Sstevel@tonic-gatewith invaluable help from Chris Nandor, and valuable help from Brandon
439*0Sstevel@tonic-gateAllbery, Charles Bailey, Graham Barr, Dominic Dunlop, Jarkko
440*0Sstevel@tonic-gateHietaniemi, Ben Holzman, Tom Horsley, Nick Ing-Simmons, Tuomas
441*0Sstevel@tonic-gateJ. Lukka, Laszlo Molnar, Alan Olsen, Peter Prymmer, Gurusamy Sarathy,
442*0Sstevel@tonic-gateChristoph Spalinger, Dan Sugalski, Larry Virden, and Ilya Zakharevich.
443*0Sstevel@tonic-gate
444*0Sstevel@tonic-gateFirst version July 22, 1998; last revised November 21, 2001.
445*0Sstevel@tonic-gate
446*0Sstevel@tonic-gate=head1 COPYRIGHT
447*0Sstevel@tonic-gate
448*0Sstevel@tonic-gateCopyright (C) 1998, 2002, 2003 Jon Orwant.  All Rights Reserved.
449*0Sstevel@tonic-gate
450*0Sstevel@tonic-gatePermission is granted to make and distribute verbatim copies of this
451*0Sstevel@tonic-gatedocumentation provided the copyright notice and this permission notice are
452*0Sstevel@tonic-gatepreserved on all copies.
453*0Sstevel@tonic-gate
454*0Sstevel@tonic-gatePermission is granted to copy and distribute modified versions of this
455*0Sstevel@tonic-gatedocumentation under the conditions for verbatim copying, provided also
456*0Sstevel@tonic-gatethat they are marked clearly as modified versions, that the authors'
457*0Sstevel@tonic-gatenames and title are unchanged (though subtitles and additional
458*0Sstevel@tonic-gateauthors' names may be added), and that the entire resulting derived
459*0Sstevel@tonic-gatework is distributed under the terms of a permission notice identical
460*0Sstevel@tonic-gateto this one.
461*0Sstevel@tonic-gate
462*0Sstevel@tonic-gatePermission is granted to copy and distribute translations of this
463*0Sstevel@tonic-gatedocumentation into another language, under the above conditions for
464*0Sstevel@tonic-gatemodified versions.
465*0Sstevel@tonic-gate
466