1*0Sstevel@tonic-gate=head1 NAME 2*0Sstevel@tonic-gate 3*0Sstevel@tonic-gateperl - Practical Extraction and Report Language 4*0Sstevel@tonic-gate 5*0Sstevel@tonic-gate=head1 SYNOPSIS 6*0Sstevel@tonic-gate 7*0Sstevel@tonic-gateB<perl> S<[ B<-sTuU> ]> S<[ B<-hv> ] [ B<-V>[:I<configvar>] ]> 8*0Sstevel@tonic-gate S<[ B<-cw> ] [ B<-d>[:I<debugger>] ] [ B<-D>[I<number/list>] ]> 9*0Sstevel@tonic-gate S<[ B<-pna> ] [ B<-F>I<pattern> ] [ B<-l>[I<octal>] ] [ B<-0>[I<octal>] ]> 10*0Sstevel@tonic-gate S<[ B<-I>I<dir> ] [ B<-m>[B<->]I<module> ] [ B<-M>[B<->]I<'module...'> ]> 11*0Sstevel@tonic-gate S<[ B<-P> ]> S<[ B<-S> ]> S<[ B<-x>[I<dir>] ]> 12*0Sstevel@tonic-gate S<[ B<-i>[I<extension>] ]> S<[ B<-e> I<'command'> ] 13*0Sstevel@tonic-gate [ B<--> ] [ I<programfile> ] [ I<argument> ]...> 14*0Sstevel@tonic-gate 15*0Sstevel@tonic-gateIf you're new to Perl, you should start with L<perlintro>, which is a 16*0Sstevel@tonic-gategeneral intro for beginners and provides some background to help you 17*0Sstevel@tonic-gatenavigate the rest of Perl's extensive documentation. 18*0Sstevel@tonic-gate 19*0Sstevel@tonic-gateFor ease of access, the Perl manual has been split up into several sections. 20*0Sstevel@tonic-gate 21*0Sstevel@tonic-gate=head2 Overview 22*0Sstevel@tonic-gate 23*0Sstevel@tonic-gate perl Perl overview (this section) 24*0Sstevel@tonic-gate perlintro Perl introduction for beginners 25*0Sstevel@tonic-gate perltoc Perl documentation table of contents 26*0Sstevel@tonic-gate 27*0Sstevel@tonic-gate=head2 Tutorials 28*0Sstevel@tonic-gate 29*0Sstevel@tonic-gate perlreftut Perl references short introduction 30*0Sstevel@tonic-gate perldsc Perl data structures intro 31*0Sstevel@tonic-gate perllol Perl data structures: arrays of arrays 32*0Sstevel@tonic-gate 33*0Sstevel@tonic-gate perlrequick Perl regular expressions quick start 34*0Sstevel@tonic-gate perlretut Perl regular expressions tutorial 35*0Sstevel@tonic-gate 36*0Sstevel@tonic-gate perlboot Perl OO tutorial for beginners 37*0Sstevel@tonic-gate perltoot Perl OO tutorial, part 1 38*0Sstevel@tonic-gate perltooc Perl OO tutorial, part 2 39*0Sstevel@tonic-gate perlbot Perl OO tricks and examples 40*0Sstevel@tonic-gate 41*0Sstevel@tonic-gate perlstyle Perl style guide 42*0Sstevel@tonic-gate 43*0Sstevel@tonic-gate perlcheat Perl cheat sheet 44*0Sstevel@tonic-gate perltrap Perl traps for the unwary 45*0Sstevel@tonic-gate perldebtut Perl debugging tutorial 46*0Sstevel@tonic-gate 47*0Sstevel@tonic-gate perlfaq Perl frequently asked questions 48*0Sstevel@tonic-gate perlfaq1 General Questions About Perl 49*0Sstevel@tonic-gate perlfaq2 Obtaining and Learning about Perl 50*0Sstevel@tonic-gate perlfaq3 Programming Tools 51*0Sstevel@tonic-gate perlfaq4 Data Manipulation 52*0Sstevel@tonic-gate perlfaq5 Files and Formats 53*0Sstevel@tonic-gate perlfaq6 Regexes 54*0Sstevel@tonic-gate perlfaq7 Perl Language Issues 55*0Sstevel@tonic-gate perlfaq8 System Interaction 56*0Sstevel@tonic-gate perlfaq9 Networking 57*0Sstevel@tonic-gate 58*0Sstevel@tonic-gate=head2 Reference Manual 59*0Sstevel@tonic-gate 60*0Sstevel@tonic-gate perlsyn Perl syntax 61*0Sstevel@tonic-gate perldata Perl data structures 62*0Sstevel@tonic-gate perlop Perl operators and precedence 63*0Sstevel@tonic-gate perlsub Perl subroutines 64*0Sstevel@tonic-gate perlfunc Perl built-in functions 65*0Sstevel@tonic-gate perlopentut Perl open() tutorial 66*0Sstevel@tonic-gate perlpacktut Perl pack() and unpack() tutorial 67*0Sstevel@tonic-gate perlpod Perl plain old documentation 68*0Sstevel@tonic-gate perlpodspec Perl plain old documentation format specification 69*0Sstevel@tonic-gate perlrun Perl execution and options 70*0Sstevel@tonic-gate perldiag Perl diagnostic messages 71*0Sstevel@tonic-gate perllexwarn Perl warnings and their control 72*0Sstevel@tonic-gate perldebug Perl debugging 73*0Sstevel@tonic-gate perlvar Perl predefined variables 74*0Sstevel@tonic-gate perlre Perl regular expressions, the rest of the story 75*0Sstevel@tonic-gate perlreref Perl regular expressions quick reference 76*0Sstevel@tonic-gate perlref Perl references, the rest of the story 77*0Sstevel@tonic-gate perlform Perl formats 78*0Sstevel@tonic-gate perlobj Perl objects 79*0Sstevel@tonic-gate perltie Perl objects hidden behind simple variables 80*0Sstevel@tonic-gate perldbmfilter Perl DBM filters 81*0Sstevel@tonic-gate 82*0Sstevel@tonic-gate perlipc Perl interprocess communication 83*0Sstevel@tonic-gate perlfork Perl fork() information 84*0Sstevel@tonic-gate perlnumber Perl number semantics 85*0Sstevel@tonic-gate 86*0Sstevel@tonic-gate perlthrtut Perl threads tutorial 87*0Sstevel@tonic-gate perlothrtut Old Perl threads tutorial 88*0Sstevel@tonic-gate 89*0Sstevel@tonic-gate perlport Perl portability guide 90*0Sstevel@tonic-gate perllocale Perl locale support 91*0Sstevel@tonic-gate perluniintro Perl Unicode introduction 92*0Sstevel@tonic-gate perlunicode Perl Unicode support 93*0Sstevel@tonic-gate perlebcdic Considerations for running Perl on EBCDIC platforms 94*0Sstevel@tonic-gate 95*0Sstevel@tonic-gate perlsec Perl security 96*0Sstevel@tonic-gate 97*0Sstevel@tonic-gate perlmod Perl modules: how they work 98*0Sstevel@tonic-gate perlmodlib Perl modules: how to write and use 99*0Sstevel@tonic-gate perlmodstyle Perl modules: how to write modules with style 100*0Sstevel@tonic-gate perlmodinstall Perl modules: how to install from CPAN 101*0Sstevel@tonic-gate perlnewmod Perl modules: preparing a new module for distribution 102*0Sstevel@tonic-gate 103*0Sstevel@tonic-gate perlutil utilities packaged with the Perl distribution 104*0Sstevel@tonic-gate 105*0Sstevel@tonic-gate perlcompile Perl compiler suite intro 106*0Sstevel@tonic-gate 107*0Sstevel@tonic-gate perlfilter Perl source filters 108*0Sstevel@tonic-gate 109*0Sstevel@tonic-gate=head2 Internals and C Language Interface 110*0Sstevel@tonic-gate 111*0Sstevel@tonic-gate perlembed Perl ways to embed perl in your C or C++ application 112*0Sstevel@tonic-gate perldebguts Perl debugging guts and tips 113*0Sstevel@tonic-gate perlxstut Perl XS tutorial 114*0Sstevel@tonic-gate perlxs Perl XS application programming interface 115*0Sstevel@tonic-gate perlclib Internal replacements for standard C library functions 116*0Sstevel@tonic-gate perlguts Perl internal functions for those doing extensions 117*0Sstevel@tonic-gate perlcall Perl calling conventions from C 118*0Sstevel@tonic-gate 119*0Sstevel@tonic-gate perlapi Perl API listing (autogenerated) 120*0Sstevel@tonic-gate perlintern Perl internal functions (autogenerated) 121*0Sstevel@tonic-gate perliol C API for Perl's implementation of IO in Layers 122*0Sstevel@tonic-gate perlapio Perl internal IO abstraction interface 123*0Sstevel@tonic-gate 124*0Sstevel@tonic-gate perlhack Perl hackers guide 125*0Sstevel@tonic-gate 126*0Sstevel@tonic-gate=head2 Miscellaneous 127*0Sstevel@tonic-gate 128*0Sstevel@tonic-gate perlbook Perl book information 129*0Sstevel@tonic-gate perltodo Perl things to do 130*0Sstevel@tonic-gate 131*0Sstevel@tonic-gate perldoc Look up Perl documentation in Pod format 132*0Sstevel@tonic-gate 133*0Sstevel@tonic-gate perlhist Perl history records 134*0Sstevel@tonic-gate perldelta Perl changes since previous version 135*0Sstevel@tonic-gate perl583delta Perl changes in version 5.8.3 136*0Sstevel@tonic-gate perl582delta Perl changes in version 5.8.2 137*0Sstevel@tonic-gate perl581delta Perl changes in version 5.8.1 138*0Sstevel@tonic-gate perl58delta Perl changes in version 5.8.0 139*0Sstevel@tonic-gate perl573delta Perl changes in version 5.7.3 140*0Sstevel@tonic-gate perl572delta Perl changes in version 5.7.2 141*0Sstevel@tonic-gate perl571delta Perl changes in version 5.7.1 142*0Sstevel@tonic-gate perl570delta Perl changes in version 5.7.0 143*0Sstevel@tonic-gate perl561delta Perl changes in version 5.6.1 144*0Sstevel@tonic-gate perl56delta Perl changes in version 5.6 145*0Sstevel@tonic-gate perl5005delta Perl changes in version 5.005 146*0Sstevel@tonic-gate perl5004delta Perl changes in version 5.004 147*0Sstevel@tonic-gate 148*0Sstevel@tonic-gate perlartistic Perl Artistic License 149*0Sstevel@tonic-gate perlgpl GNU General Public License 150*0Sstevel@tonic-gate 151*0Sstevel@tonic-gate=head2 Language-Specific 152*0Sstevel@tonic-gate 153*0Sstevel@tonic-gate perlcn Perl for Simplified Chinese (in EUC-CN) 154*0Sstevel@tonic-gate perljp Perl for Japanese (in EUC-JP) 155*0Sstevel@tonic-gate perlko Perl for Korean (in EUC-KR) 156*0Sstevel@tonic-gate perltw Perl for Traditional Chinese (in Big5) 157*0Sstevel@tonic-gate 158*0Sstevel@tonic-gate=head2 Platform-Specific 159*0Sstevel@tonic-gate 160*0Sstevel@tonic-gate perlsolaris Perl notes for Solaris 161*0Sstevel@tonic-gate 162*0Sstevel@tonic-gate 163*0Sstevel@tonic-gateThe manpages listed above are installed in the F</usr/perl5/man/> directory. 164*0Sstevel@tonic-gate 165*0Sstevel@tonic-gateExtensive additional documentation for Perl modules is available. This 166*0Sstevel@tonic-gateadditional documentation is in the F</usr/perl5/man> directory. 167*0Sstevel@tonic-gateSome of this additional documentation is distributed standard with Perl, 168*0Sstevel@tonic-gatebut you'll also find documentation for any customer-installed third-party 169*0Sstevel@tonic-gatemodules there. 170*0Sstevel@tonic-gate 171*0Sstevel@tonic-gateYou can view Perl's documentation with man(1) by including /usr/perl5/man 172*0Sstevel@tonic-gatein the MANPATH environment variable. Notice that running catman(1M) on the 173*0Sstevel@tonic-gatePerl manual pages is not supported. For other Solaris-specific details, 174*0Sstevel@tonic-gatesee the NOTES section below. 175*0Sstevel@tonic-gate 176*0Sstevel@tonic-gateYou can also use the supplied F</usr/perl5/bin/perldoc> script to view 177*0Sstevel@tonic-gatePerl information. 178*0Sstevel@tonic-gate 179*0Sstevel@tonic-gateIf something strange has gone wrong with your program and you're not 180*0Sstevel@tonic-gatesure where you should look for help, try the B<-w> switch first. It 181*0Sstevel@tonic-gatewill often point out exactly where the trouble is. 182*0Sstevel@tonic-gate 183*0Sstevel@tonic-gate=head1 DESCRIPTION 184*0Sstevel@tonic-gate 185*0Sstevel@tonic-gatePerl is a language optimized for scanning arbitrary 186*0Sstevel@tonic-gatetext files, extracting information from those text files, and printing 187*0Sstevel@tonic-gatereports based on that information. It's also a good language for many 188*0Sstevel@tonic-gatesystem management tasks. The language is intended to be practical 189*0Sstevel@tonic-gate(easy to use, efficient, complete) rather than beautiful (tiny, 190*0Sstevel@tonic-gateelegant, minimal). 191*0Sstevel@tonic-gate 192*0Sstevel@tonic-gatePerl combines (in the author's opinion, anyway) some of the best 193*0Sstevel@tonic-gatefeatures of C, B<sed>, B<awk>, and B<sh>, so people familiar with 194*0Sstevel@tonic-gatethose languages should have little difficulty with it. (Language 195*0Sstevel@tonic-gatehistorians will also note some vestiges of B<csh>, Pascal, and even 196*0Sstevel@tonic-gateBASIC-PLUS.) Expression syntax corresponds closely to C 197*0Sstevel@tonic-gateexpression syntax. Unlike most Unix utilities, Perl does not 198*0Sstevel@tonic-gatearbitrarily limit the size of your data--if you've got the memory, 199*0Sstevel@tonic-gatePerl can slurp in your whole file as a single string. Recursion is of 200*0Sstevel@tonic-gateunlimited depth. And the tables used by hashes (sometimes called 201*0Sstevel@tonic-gate"associative arrays") grow as necessary to prevent degraded 202*0Sstevel@tonic-gateperformance. Perl can use sophisticated pattern matching techniques to 203*0Sstevel@tonic-gatescan large amounts of data quickly. Although optimized for 204*0Sstevel@tonic-gatescanning text, Perl can also deal with binary data, and can make dbm 205*0Sstevel@tonic-gatefiles look like hashes. Setuid Perl scripts are safer than C programs 206*0Sstevel@tonic-gatethrough a dataflow tracing mechanism that prevents many stupid 207*0Sstevel@tonic-gatesecurity holes. 208*0Sstevel@tonic-gate 209*0Sstevel@tonic-gateIf you have a problem that would ordinarily use B<sed> or B<awk> or 210*0Sstevel@tonic-gateB<sh>, but it exceeds their capabilities or must run a little faster, 211*0Sstevel@tonic-gateand you don't want to write the silly thing in C, then Perl may be for 212*0Sstevel@tonic-gateyou. There are also translators to turn your B<sed> and B<awk> 213*0Sstevel@tonic-gatescripts into Perl scripts. 214*0Sstevel@tonic-gate 215*0Sstevel@tonic-gateBut wait, there's more... 216*0Sstevel@tonic-gate 217*0Sstevel@tonic-gateBegun in 1993 (see L<perlhist>), Perl version 5 is nearly a complete 218*0Sstevel@tonic-gaterewrite that provides the following additional benefits: 219*0Sstevel@tonic-gate 220*0Sstevel@tonic-gate=over 4 221*0Sstevel@tonic-gate 222*0Sstevel@tonic-gate=item * 223*0Sstevel@tonic-gate 224*0Sstevel@tonic-gatemodularity and reusability using innumerable modules 225*0Sstevel@tonic-gate 226*0Sstevel@tonic-gateDescribed in L<perlmod>, L<perlmodlib>, and L<perlmodinstall>. 227*0Sstevel@tonic-gate 228*0Sstevel@tonic-gate=item * 229*0Sstevel@tonic-gate 230*0Sstevel@tonic-gateembeddable and extensible 231*0Sstevel@tonic-gate 232*0Sstevel@tonic-gateDescribed in L<perlembed>, L<perlxstut>, L<perlxs>, L<perlcall>, 233*0Sstevel@tonic-gateL<perlguts>, and L<xsubpp>. 234*0Sstevel@tonic-gate 235*0Sstevel@tonic-gate=item * 236*0Sstevel@tonic-gate 237*0Sstevel@tonic-gateroll-your-own magic variables (including multiple simultaneous DBM 238*0Sstevel@tonic-gateimplementations) 239*0Sstevel@tonic-gate 240*0Sstevel@tonic-gateDescribed in L<perltie> and L<AnyDBM_File>. 241*0Sstevel@tonic-gate 242*0Sstevel@tonic-gate=item * 243*0Sstevel@tonic-gate 244*0Sstevel@tonic-gatesubroutines can now be overridden, autoloaded, and prototyped 245*0Sstevel@tonic-gate 246*0Sstevel@tonic-gateDescribed in L<perlsub>. 247*0Sstevel@tonic-gate 248*0Sstevel@tonic-gate=item * 249*0Sstevel@tonic-gate 250*0Sstevel@tonic-gatearbitrarily nested data structures and anonymous functions 251*0Sstevel@tonic-gate 252*0Sstevel@tonic-gateDescribed in L<perlreftut>, L<perlref>, L<perldsc>, and L<perllol>. 253*0Sstevel@tonic-gate 254*0Sstevel@tonic-gate=item * 255*0Sstevel@tonic-gate 256*0Sstevel@tonic-gateobject-oriented programming 257*0Sstevel@tonic-gate 258*0Sstevel@tonic-gateDescribed in L<perlobj>, L<perlboot>, L<perltoot>, L<perltooc>, 259*0Sstevel@tonic-gateand L<perlbot>. 260*0Sstevel@tonic-gate 261*0Sstevel@tonic-gate=item * 262*0Sstevel@tonic-gate 263*0Sstevel@tonic-gatesupport for light-weight processes (threads) 264*0Sstevel@tonic-gate 265*0Sstevel@tonic-gateDescribed in L<perlthrtut> and L<threads>. 266*0Sstevel@tonic-gate 267*0Sstevel@tonic-gate=item * 268*0Sstevel@tonic-gate 269*0Sstevel@tonic-gatesupport for Unicode, internationalization, and localization 270*0Sstevel@tonic-gate 271*0Sstevel@tonic-gateDescribed in L<perluniintro>, L<perllocale> and L<Locale::Maketext>. 272*0Sstevel@tonic-gate 273*0Sstevel@tonic-gate=item * 274*0Sstevel@tonic-gate 275*0Sstevel@tonic-gatelexical scoping 276*0Sstevel@tonic-gate 277*0Sstevel@tonic-gateDescribed in L<perlsub>. 278*0Sstevel@tonic-gate 279*0Sstevel@tonic-gate=item * 280*0Sstevel@tonic-gate 281*0Sstevel@tonic-gateregular expression enhancements 282*0Sstevel@tonic-gate 283*0Sstevel@tonic-gateDescribed in L<perlre>, with additional examples in L<perlop>. 284*0Sstevel@tonic-gate 285*0Sstevel@tonic-gate=item * 286*0Sstevel@tonic-gate 287*0Sstevel@tonic-gateenhanced debugger and interactive Perl environment, 288*0Sstevel@tonic-gatewith integrated editor support 289*0Sstevel@tonic-gate 290*0Sstevel@tonic-gateDescribed in L<perldebtut>, L<perldebug> and L<perldebguts>. 291*0Sstevel@tonic-gate 292*0Sstevel@tonic-gate=item * 293*0Sstevel@tonic-gate 294*0Sstevel@tonic-gatePOSIX 1003.1 compliant library 295*0Sstevel@tonic-gate 296*0Sstevel@tonic-gateDescribed in L<POSIX>. 297*0Sstevel@tonic-gate 298*0Sstevel@tonic-gate=back 299*0Sstevel@tonic-gate 300*0Sstevel@tonic-gateOkay, that's I<definitely> enough hype. 301*0Sstevel@tonic-gate 302*0Sstevel@tonic-gate=head1 AVAILABILITY 303*0Sstevel@tonic-gate 304*0Sstevel@tonic-gatePerl is available for most operating systems, including virtually 305*0Sstevel@tonic-gateall Unix-like platforms. See L<perlport/"Supported Platforms"> 306*0Sstevel@tonic-gatefor a listing. 307*0Sstevel@tonic-gate 308*0Sstevel@tonic-gate=head1 ENVIRONMENT 309*0Sstevel@tonic-gate 310*0Sstevel@tonic-gateThe Perl shipped with Solaris is installed under F</usr/perl5> rather 311*0Sstevel@tonic-gatethan the default F</usr/local> location. This is so that it can coexist 312*0Sstevel@tonic-gatewith a customer-installed Perl in the default F</usr/local> location. 313*0Sstevel@tonic-gate 314*0Sstevel@tonic-gateAny additional modules that you choose to install will be placed in the 315*0Sstevel@tonic-gateF</usr/perl5/site_perl/5.8.4> directory. The F</usr/perl5/vendor_perl> 316*0Sstevel@tonic-gatedirectory is reserved for SMI-provided modules. 317*0Sstevel@tonic-gate 318*0Sstevel@tonic-gateNotice that the Perl utility scripts such as perldoc and perlbug are in 319*0Sstevel@tonic-gatethe F</usr/perl5/bin> directory, so if you wish to use them you need to 320*0Sstevel@tonic-gateinclude F</usr/perl5/bin> in your PATH environment variable. 321*0Sstevel@tonic-gate 322*0Sstevel@tonic-gateSee also the L<perlrun> mapage. 323*0Sstevel@tonic-gate 324*0Sstevel@tonic-gate=head1 AUTHOR 325*0Sstevel@tonic-gate 326*0Sstevel@tonic-gateLarry Wall <larry@wall.org>, with the help of oodles of other folks. 327*0Sstevel@tonic-gate 328*0Sstevel@tonic-gateIf your Perl success stories and testimonials may be of help to others 329*0Sstevel@tonic-gatewho wish to advocate the use of Perl in their applications, 330*0Sstevel@tonic-gateor if you wish to simply express your gratitude to Larry and the 331*0Sstevel@tonic-gatePerl developers, please write to perl-thanks@perl.org . 332*0Sstevel@tonic-gate 333*0Sstevel@tonic-gate=head1 FILES 334*0Sstevel@tonic-gate 335*0Sstevel@tonic-gate "@INC" locations of perl libraries 336*0Sstevel@tonic-gate 337*0Sstevel@tonic-gate=head1 ATTRIBUTES 338*0Sstevel@tonic-gate 339*0Sstevel@tonic-gateSee attributes(5) for descriptions of the following attributes: 340*0Sstevel@tonic-gate 341*0Sstevel@tonic-gate ____________________________________________________________ 342*0Sstevel@tonic-gate | ATTRIBUTE TYPE | ATTRIBUTE VALUE | 343*0Sstevel@tonic-gate |_____________________________|_____________________________| 344*0Sstevel@tonic-gate | Availability | SUNWperl583core | 345*0Sstevel@tonic-gate | | SUNWperl583usr | 346*0Sstevel@tonic-gate | | SUNWperl583man | 347*0Sstevel@tonic-gate |_____________________________|_____________________________| 348*0Sstevel@tonic-gate | Interface Stability | | 349*0Sstevel@tonic-gate |_____________________________|_____________________________| 350*0Sstevel@tonic-gate | o Script interface | Evolving | 351*0Sstevel@tonic-gate |_____________________________|_____________________________| 352*0Sstevel@tonic-gate | o XSUB interface | Evolving | 353*0Sstevel@tonic-gate |_____________________________|_____________________________| 354*0Sstevel@tonic-gate | o Binary interface | Unstable | 355*0Sstevel@tonic-gate |_____________________________|_____________________________| 356*0Sstevel@tonic-gate | o Directory layout | Evolving | 357*0Sstevel@tonic-gate |_____________________________|_____________________________| 358*0Sstevel@tonic-gate 359*0Sstevel@tonic-gate 360*0Sstevel@tonic-gate=head1 SEE ALSO 361*0Sstevel@tonic-gate 362*0Sstevel@tonic-gate perlsolaris(1) Perl version 5 on Solaris systems 363*0Sstevel@tonic-gate perlgcc(1) Compile perl modules using gcc 364*0Sstevel@tonic-gate 365*0Sstevel@tonic-gate a2p awk to perl translator 366*0Sstevel@tonic-gate s2p sed to perl translator 367*0Sstevel@tonic-gate 368*0Sstevel@tonic-gate http://www.perl.com/ the Perl Home Page 369*0Sstevel@tonic-gate http://www.cpan.org/ the Comprehensive Perl Archive 370*0Sstevel@tonic-gate http://www.perl.org/ Perl Mongers (Perl user groups) 371*0Sstevel@tonic-gate 372*0Sstevel@tonic-gate=head1 DIAGNOSTICS 373*0Sstevel@tonic-gate 374*0Sstevel@tonic-gateThe C<use warnings> pragma (and the B<-w> switch) produces some 375*0Sstevel@tonic-gatelovely diagnostics. 376*0Sstevel@tonic-gate 377*0Sstevel@tonic-gateSee L<perldiag> for explanations of all Perl's diagnostics. The C<use 378*0Sstevel@tonic-gatediagnostics> pragma automatically turns Perl's normally terse warnings 379*0Sstevel@tonic-gateand errors into these longer forms. 380*0Sstevel@tonic-gate 381*0Sstevel@tonic-gateCompilation errors will tell you the line number of the error, with an 382*0Sstevel@tonic-gateindication of the next token or token type that was to be examined. 383*0Sstevel@tonic-gate(In a script passed to Perl via B<-e> switches, each 384*0Sstevel@tonic-gateB<-e> is counted as one line.) 385*0Sstevel@tonic-gate 386*0Sstevel@tonic-gateSetuid scripts have additional constraints that can produce error 387*0Sstevel@tonic-gatemessages such as "Insecure dependency". See L<perlsec>. 388*0Sstevel@tonic-gate 389*0Sstevel@tonic-gateDid we mention that you should definitely consider using the B<-w> 390*0Sstevel@tonic-gateswitch? 391*0Sstevel@tonic-gate 392*0Sstevel@tonic-gate=head1 NOTES 393*0Sstevel@tonic-gate 394*0Sstevel@tonic-gatePerl 5.8.4 has been built to be largefile-aware and to use 64-bit integers, 395*0Sstevel@tonic-gatealthough the interpreter itself is a 32-bit application (LP32). To view 396*0Sstevel@tonic-gatedetailed configuration information, use perl -V and perlbug -dv. 397*0Sstevel@tonic-gate 398*0Sstevel@tonic-gateIf you wish to build and install add-on modules from CPAN using gcc, you can do 399*0Sstevel@tonic-gateso using the /usr/perl5/5.8.4/bin/perlgcc script - see C<perlgcc(1)> for 400*0Sstevel@tonic-gatedetails. 401*0Sstevel@tonic-gate 402*0Sstevel@tonic-gateIf you wish to build and install your own version of Perl, you should NOT 403*0Sstevel@tonic-gateremove the 5.8.4 version of perl under /usr/perl5, as it is required by 404*0Sstevel@tonic-gateseveral system utilities. The Perl package names are as follows: 405*0Sstevel@tonic-gate 406*0Sstevel@tonic-gate SUNWperl583core Perl 5.8.4 (Core files) 407*0Sstevel@tonic-gate SUNWperl583usr Perl 5.8.4 (Non-core files) 408*0Sstevel@tonic-gate SUNWperl583man Perl 5.8.4 (Manual pages) 409*0Sstevel@tonic-gate 410*0Sstevel@tonic-gateThe Perl motto is "There's more than one way to do it." Divining 411*0Sstevel@tonic-gatehow many more is left as an exercise to the reader. 412*0Sstevel@tonic-gate 413*0Sstevel@tonic-gateThe three principal virtues of a programmer are Laziness, 414*0Sstevel@tonic-gateImpatience, and Hubris. See the Camel Book for why. 415*0Sstevel@tonic-gate 416*0Sstevel@tonic-gate=head1 BUGS 417*0Sstevel@tonic-gate 418*0Sstevel@tonic-gateThe B<-w> switch is not mandatory. 419*0Sstevel@tonic-gate 420*0Sstevel@tonic-gatePerl is at the mercy of your machine's definitions of various 421*0Sstevel@tonic-gateoperations such as type casting, atof(), and floating-point 422*0Sstevel@tonic-gateoutput with sprintf(). 423*0Sstevel@tonic-gate 424*0Sstevel@tonic-gateIf your stdio requires a seek or eof between reads and writes on a 425*0Sstevel@tonic-gateparticular stream, so does Perl. (This doesn't apply to sysread() 426*0Sstevel@tonic-gateand syswrite().) 427*0Sstevel@tonic-gate 428*0Sstevel@tonic-gateWhile none of the built-in data types have any arbitrary size limits 429*0Sstevel@tonic-gate(apart from memory size), there are still a few arbitrary limits: a 430*0Sstevel@tonic-gategiven variable name may not be longer than 251 characters. Line numbers 431*0Sstevel@tonic-gatedisplayed by diagnostics are internally stored as short integers, 432*0Sstevel@tonic-gateso they are limited to a maximum of 65535 (higher numbers usually being 433*0Sstevel@tonic-gateaffected by wraparound). 434*0Sstevel@tonic-gate 435*0Sstevel@tonic-gateYou may mail your bug reports (be sure to include full configuration 436*0Sstevel@tonic-gateinformation as output by the myconfig program in the perl source 437*0Sstevel@tonic-gatetree, or by C<perl -V>) to perlbug@perl.org . If you've succeeded 438*0Sstevel@tonic-gatein compiling perl, the B<perlbug> script in the F<utils/> subdirectory 439*0Sstevel@tonic-gatecan be used to help mail in a bug report. 440*0Sstevel@tonic-gate 441*0Sstevel@tonic-gatePerl actually stands for Pathologically Eclectic Rubbish Lister, but 442*0Sstevel@tonic-gatedon't tell anyone I said that. 443*0Sstevel@tonic-gate 444