.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "TraceMessages 3pm" .TH TraceMessages 3pm "2003-12-05" "perl v5.18.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Log::TraceMessages \- Perl extension for trace messages used in debugging .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 8 \& use Log::TraceMessages qw(t d); \& $Log::TraceMessages::On = 1; \& t \*(Aqgot to here\*(Aq; \& t \*(Aqvalue of $a is \*(Aq . d($a); \& { \& local $Log::TraceMessages::On = 0; \& t \*(Aqthis message will not be printed\*(Aq; \& } \& \& $Log::TraceMessages::Logfile = \*(Aqlog.out\*(Aq; \& t \*(Aqthis message will go to the file log.out\*(Aq; \& $Log::TraceMessages::Logfile = undef; \& t \*(Aqand this message is on stderr as usual\*(Aq; \& \& # For a CGI program producing HTML \& $Log::TraceMessages::CGI = 1; \& \& # Or to turn on trace if there\*(Aqs a command\-line argument \*(Aq\-\-trace\*(Aq \& Log::TraceMessages::check_argv(); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This module is a slightly better way to put trace statements into your code than just calling \fIprint()\fR. It provides an easy way to turn trace on and off for particular sections of code without having to comment out bits of source. .SH "USAGE" .IX Header "USAGE" .ie n .IP "$Log::TraceMessages::On" 4 .el .IP "\f(CW$Log::TraceMessages::On\fR" 4 .IX Item "$Log::TraceMessages::On" Flag controlling whether tracing is on or off. You can set it as you wish, and of course it can be \f(CW\*(C`local\*(C'\fR\-ized. The default is off. .ie n .IP "$Log::TraceMessages::Logfile" 4 .el .IP "\f(CW$Log::TraceMessages::Logfile\fR" 4 .IX Item "$Log::TraceMessages::Logfile" The name of the file to which trace should be appended. If this is undefined (which is the default), then trace will be written to stderr, or to stdout if \f(CW$CGI\fR is set. .ie n .IP "$Log::TraceMessages::CGI" 4 .el .IP "\f(CW$Log::TraceMessages::CGI\fR" 4 .IX Item "$Log::TraceMessages::CGI" Flag controlling whether the program printing trace messages is a \s-1CGI\s0 program (default is no). This means that trace messages will be printed as \s-1HTML. \s0 Unless \f(CW$Logfile\fR is also set, messages will be printed to stdout so they appear in the output page. .IP "t(messages)" 4 .IX Item "t(messages)" Print the given strings, if tracing is enabled. Unless \f(CW$CGI\fR is true or \f(CW$Logfile\fR is set, each message will be printed to stderr with a newline appended. .IP "trace(messages)" 4 .IX Item "trace(messages)" Synonym for \f(CW\*(C`t(messages)\*(C'\fR. .IP "d(scalar)" 4 .IX Item "d(scalar)" Return a string representation of a scalar's value suitable for use in a trace statement. This is just a wrapper for Data::Dumper. .Sp \&\f(CW\*(C`d()\*(C'\fR will exit with '' if trace is not turned on. This is to stop your program being slowed down by generating lots of strings for trace statements that are never printed. .IP "dmp(scalar)" 4 .IX Item "dmp(scalar)" Synonym for \f(CW\*(C`d(scalar)\*(C'\fR. .IP "\fIcheck_argv()\fR" 4 .IX Item "check_argv()" Looks at the global \f(CW@ARGV\fR of command-line parameters to find one called '\-\-trace'. If this is found, it will be removed from \f(CW@ARGV\fR and tracing will be turned on. Since tracing is off by default, calling \f(CW\*(C`check_argv()\*(C'\fR is a way to make your program print trace only when you ask for it from the command line. .SH "AUTHOR" .IX Header "AUTHOR" Ed Avis, ed@membled.com .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIperl\fR\|(1), \fIData::Dumper\fR\|(3). .SH "POD ERRORS" .IX Header "POD ERRORS" Hey! \fBThe above document had some coding errors, which are explained below:\fR .IP "Around line 218:" 4 .IX Item "Around line 218:" You forgot a '=back' before '=head1'