⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 debug.pm

📁 source of perl for linux application,
💻 PM
字号:
require 5;package Pod::Simple::Debug;use strict;sub import {  my($value,$variable);    if(@_ == 2) {    $value = $_[1];  } elsif(@_ == 3) {    ($variable, $value) = @_[1,2];        ($variable, $value) = ($value, $variable)       if     defined $value    and ref($value)    eq 'SCALAR'      and not(defined $variable and ref($variable) eq 'SCALAR')    ; # tolerate getting it backwards        unless( defined $variable and ref($variable) eq 'SCALAR') {      require Carp;      Carp::croak("Usage:\n use Pod::Simple::Debug (NUMVAL)\nor"                . "\n use Pod::Simple::Debug (\\\$var, STARTNUMVAL)\nAborting");    }  } else {    require Carp;    Carp::croak("Usage:\n use Pod::Simple::Debug (NUMVAL)\nor"                    . "\n use Pod::Simple::Debug (\\\$var, STARTNUMVAL)\nAborting");  }  if( defined &Pod::Simple::DEBUG ) {    require Carp;    Carp::croak("It's too late to call Pod::Simple::Debug -- "              . "Pod::Simple has already loaded\nAborting");  }    $value = 0 unless defined $value;  unless($value =~ m/^-?\d+$/) {    require Carp;    Carp::croak( "$value isn't a numeric value."            . "\nUsage:\n use Pod::Simple::Debug (NUMVAL)\nor"                    . "\n use Pod::Simple::Debug (\\\$var, STARTNUMVAL)\nAborting");  }  if( defined $variable ) {    # make a not-really-constant    *Pod::Simple::DEBUG = sub () { $$variable } ;    $$variable = $value;    print "# Starting Pod::Simple::DEBUG = non-constant $variable with val $value\n";  } else {    *Pod::Simple::DEBUG = eval " sub () { $value } ";    print "# Starting Pod::Simple::DEBUG = $value\n";  }    require Pod::Simple;  return;}1;__END__=head1 NAMEPod::Simple::Debug -- put Pod::Simple into trace/debug mode=head1 SYNOPSIS use Pod::Simple::Debug (5);  # or some integerOr: my $debuglevel; use Pod::Simple::Debug (\$debuglevel, 0); ...some stuff that uses Pod::Simple to do stuff, but which  you don't want debug output from... $debug_level = 4; ...some stuff that uses Pod::Simple to do stuff, but which  you DO want debug output from... $debug_level = 0;=head1 DESCRIPTIONThis is an internal module for controlling the debug level (a.k.a. tracelevel) of Pod::Simple.  This is of interest only to Pod::Simpledevelopers.=head1 CAVEATSNote that you should load this module I<before> loading Pod::Simple (orany Pod::Simple-based class).  If you try loading Pod::Simple::Debugafter &Pod::Simple::DEBUG is already defined, Pod::Simple::Debug willthrow a fatal error to the effect that"it's s too late to call Pod::Simple::Debug".Note that the C<use Pod::Simple::Debug (\$x, I<somenum>)> mode will makePod::Simple (et al) run rather slower, since &Pod::Simple::DEBUG won'tbe a constant sub anymore, and so Pod::Simple (et al) won't compile withconstant-folding.=head1 GUTSDoing this:  use Pod::Simple::Debug (5);  # or some integeris basically equivalent to:  BEGIN { sub Pod::Simple::DEBUG () {5} }  # or some integer  use Pod::Simple ();And this:  use Pod::Simple::Debug (\$debug_level,0);  # or some integeris basically equivalent to this:  my $debug_level;  BEGIN { $debug_level = 0 }  BEGIN { sub Pod::Simple::DEBUG () { $debug_level }  use Pod::Simple ();=head1 SEE ALSOL<Pod::Simple>The article "Constants in Perl", in I<The Perl Journal> issue21.  See L<http://www.sysadminmag.com/tpj/issues/vol5_5/>=head1 COPYRIGHT AND DISCLAIMERSCopyright (c) 2002 Sean M. Burke.  All rights reserved.This library is free software; you can redistribute it and/or modify itunder the same terms as Perl itself.This program is distributed in the hope that it will be useful, butwithout any warranty; without even the implied warranty ofmerchantability or fitness for a particular purpose.=head1 AUTHORSean M. Burke C<sburke@cpan.org>=cut

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -