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