/
usr
/
local
/
share
/
man
/
man3
/
/usr/local/share/man/man3
mkdir
upload
Name
Size
Mode
Actions
App::Prove.3pm
10508
0444
edit
dl
rm
App::Prove::State.3pm
6005
0444
edit
dl
rm
App::Prove::State::Result.3pm
5619
0444
edit
dl
rm
App::Prove::State::Result::Test.3pm
5051
0444
edit
dl
rm
AppConfig.3pm
35289
0444
edit
dl
rm
AppConfig::Args.3pm
7992
0444
edit
dl
rm
AppConfig::CGI.3pm
6609
0444
edit
dl
rm
AppConfig::File.3pm
12614
0444
edit
dl
rm
AppConfig::Getopt.3pm
7444
0444
edit
dl
rm
AppConfig::State.3pm
24972
0444
edit
dl
rm
AppConfig::Sys.3pm
6695
0444
edit
dl
rm
Archive::Tar.3pm
44061
0444
edit
dl
rm
Archive::Tar::File.3pm
11083
0444
edit
dl
rm
Archive::Zip.3pm
69985
0444
edit
dl
rm
Archive::Zip::FAQ.3pm
18437
0444
edit
dl
rm
Archive::Zip::MemberRead.3pm
6734
0444
edit
dl
rm
Archive::Zip::Tree.3pm
2875
0444
edit
dl
rm
B::COW.3pm
5163
0444
edit
dl
rm
Canary::Stability.3pm
3727
0444
edit
dl
rm
CDB_File.3pm
14318
0444
edit
dl
rm
common::sense.3pm
0
0444
edit
dl
rm
Compress::Raw::Bzip2.3pm
13463
0444
edit
dl
rm
Compress::Raw::Zlib.3pm
42082
0444
edit
dl
rm
Compress::Zlib.3pm
38719
0444
edit
dl
rm
CPAN::Meta.3pm
15923
0444
edit
dl
rm
CPAN::Meta::Converter.3pm
6594
0444
edit
dl
rm
CPAN::Meta::Feature.3pm
4322
0444
edit
dl
rm
CPAN::Meta::History.3pm
7855
0444
edit
dl
rm
CPAN::Meta::History::Meta_1_0.3pm
9973
0444
edit
dl
rm
CPAN::Meta::History::Meta_1_1.3pm
12410
0444
edit
dl
rm
CPAN::Meta::History::Meta_1_2.3pm
22224
0444
edit
dl
rm
CPAN::Meta::History::Meta_1_3.3pm
23974
0444
edit
dl
rm
CPAN::Meta::History::Meta_1_4.3pm
24565
0444
edit
dl
rm
CPAN::Meta::Merge.3pm
5285
0444
edit
dl
rm
CPAN::Meta::Prereqs.3pm
7380
0444
edit
dl
rm
CPAN::Meta::Requirements.3pm
12308
0444
edit
dl
rm
CPAN::Meta::Spec.3pm
45592
0444
edit
dl
rm
CPAN::Meta::Validator.3pm
4215
0444
edit
dl
rm
CPAN::Meta::YAML.3pm
4230
0444
edit
dl
rm
Crypt::OpenSSL::Random.3pm
5634
0444
edit
dl
rm
Curses.3pm
37580
0444
edit
dl
rm
Curses::UI.3pm
15619
0444
edit
dl
rm
Curses::UI::Buttonbox.3pm
8908
0444
edit
dl
rm
Curses::UI::Calendar.3pm
8203
0444
edit
dl
rm
Curses::UI::Checkbox.3pm
6509
0444
edit
dl
rm
Curses::UI::Color.3pm
5903
0444
edit
dl
rm
Curses::UI::Common.3pm
6498
0444
edit
dl
rm
Curses::UI::Container.3pm
9041
0444
edit
dl
rm
Curses::UI::Dialog::Basic.3pm
5213
0444
edit
dl
rm
Curses::UI::Dialog::Calendar.3pm
4761
0444
edit
dl
rm
Curses::UI::Dialog::Dirbrowser.3pm
5369
0444
edit
dl
rm
Curses::UI::Dialog::Error.3pm
4307
0444
edit
dl
rm
Curses::UI::Dialog::Filebrowser.3pm
6889
0444
edit
dl
rm
Curses::UI::Dialog::Progress.3pm
5774
0444
edit
dl
rm
Curses::UI::Dialog::Question.3pm
5277
0444
edit
dl
rm
Curses::UI::Dialog::Status.3pm
4765
0444
edit
dl
rm
Curses::UI::Label.3pm
7333
0444
edit
dl
rm
Curses::UI::Listbox.3pm
11988
0444
edit
dl
rm
Curses::UI::Menubar.3pm
8110
0444
edit
dl
rm
Curses::UI::Notebook.3pm
9140
0444
edit
dl
rm
Curses::UI::PasswordEntry.3pm
3743
0444
edit
dl
rm
Curses::UI::Popupmenu.3pm
7431
0444
edit
dl
rm
Curses::UI::Progressbar.3pm
5891
0444
edit
dl
rm
Curses::UI::Radiobuttonbox.3pm
4069
0444
edit
dl
rm
Curses::UI::Searchable.3pm
6668
0444
edit
dl
rm
Curses::UI::TextEditor.3pm
14171
0444
edit
dl
rm
Curses::UI::TextEntry.3pm
3623
0444
edit
dl
rm
Curses::UI::TextViewer.3pm
3670
0444
edit
dl
rm
Curses::UI::Tutorial.3pm
8555
0444
edit
dl
rm
Curses::UI::Widget.3pm
25675
0444
edit
dl
rm
Curses::UI::Window.3pm
5084
0444
edit
dl
rm
Cwd.3pm
7183
0444
edit
dl
rm
Date::Format.3pm
7291
0444
edit
dl
rm
Date::Language.3pm
3809
0444
edit
dl
rm
Date::Language::Bulgarian.3pm
3675
0444
edit
dl
rm
Date::Language::Hungarian.3pm
3091
0444
edit
dl
rm
Date::Parse.3pm
5402
0444
edit
dl
rm
Digest::SHA.3pm
25759
0444
edit
dl
rm
Expect.3pm
60229
0444
edit
dl
rm
ExtUtils::CBuilder.3pm
11923
0444
edit
dl
rm
ExtUtils::CBuilder::Platform::Windows.3pm
3117
0444
edit
dl
rm
ExtUtils::Command.3pm
5942
0444
edit
dl
rm
ExtUtils::Command::MM.3pm
5723
0444
edit
dl
rm
ExtUtils::Liblist.3pm
12679
0444
edit
dl
rm
ExtUtils::MakeMaker.3pm
79357
0444
edit
dl
rm
ExtUtils::MakeMaker::Config.3pm
2587
0444
edit
dl
rm
ExtUtils::MakeMaker::FAQ.3pm
26829
0444
edit
dl
rm
ExtUtils::MakeMaker::Locale.3pm
11168
0444
edit
dl
rm
ExtUtils::MakeMaker::Tutorial.3pm
8389
0444
edit
dl
rm
ExtUtils::Manifest.3pm
11961
0444
edit
dl
rm
ExtUtils::Mkbootstrap.3pm
3459
0444
edit
dl
rm
ExtUtils::Mksymlists.3pm
6699
0444
edit
dl
rm
ExtUtils::MM.3pm
2829
0444
edit
dl
rm
ExtUtils::MM_AIX.3pm
3044
0444
edit
dl
rm
ExtUtils::MM_Any.3pm
31129
0444
edit
dl
rm
ExtUtils::MM_BeOS.3pm
2798
0444
edit
dl
rm
ExtUtils::MM_Cygwin.3pm
3569
0444
edit
dl
rm
ExtUtils::MM_Darwin.3pm
2688
0444
edit
dl
rm
ExtUtils::MM_DOS.3pm
3021
0444
edit
dl
rm
ExtUtils::MM_MacOS.3pm
2987
0444
edit
dl
rm
ExtUtils::MM_NW5.3pm
3200
0444
edit
dl
rm
ExtUtils::MM_OS2.3pm
2886
0444
edit
dl
rm
ExtUtils::MM_QNX.3pm
2942
0444
edit
dl
rm
ExtUtils::MM_Unix.3pm
21419
0444
edit
dl
rm
ExtUtils::MM_UWIN.3pm
3051
0444
edit
dl
rm
ExtUtils::MM_VMS.3pm
14900
0444
edit
dl
rm
ExtUtils::MM_VOS.3pm
2926
0444
edit
dl
rm
ExtUtils::MM_Win32.3pm
5919
0444
edit
dl
rm
ExtUtils::MM_Win95.3pm
3276
0444
edit
dl
rm
ExtUtils::MY.3pm
2764
0444
edit
dl
rm
ExtUtils::testlib.3pm
2690
0444
edit
dl
rm
File::GlobMapper.3pm
11447
0444
edit
dl
rm
File::HomeDir.3pm
18212
0444
edit
dl
rm
File::HomeDir::Darwin.3pm
3232
0444
edit
dl
rm
File::HomeDir::Darwin::Carbon.3pm
3517
0444
edit
dl
rm
File::HomeDir::Darwin::Cocoa.3pm
3446
0444
edit
dl
rm
File::HomeDir::Driver.3pm
3101
0444
edit
dl
rm
File::HomeDir::FreeDesktop.3pm
3487
0444
edit
dl
rm
File::HomeDir::MacOS9.3pm
3499
0444
edit
dl
rm
File::HomeDir::Test.3pm
3534
0444
edit
dl
rm
File::HomeDir::Unix.3pm
3638
0444
edit
dl
rm
File::HomeDir::Windows.3pm
4891
0444
edit
dl
rm
File::Path.3pm
31030
0444
edit
dl
rm
File::Slurp.3pm
23626
0444
edit
dl
rm
File::Spec.3pm
13784
0444
edit
dl
rm
File::Spec::AmigaOS.3pm
2826
0444
edit
dl
rm
File::Spec::Cygwin.3pm
3957
0444
edit
dl
rm
File::Spec::Epoc.3pm
3251
0444
edit
dl
rm
File::Spec::Functions.3pm
3799
0444
edit
dl
rm
File::Spec::Mac.3pm
18664
0444
edit
dl
rm
File::Spec::OS2.3pm
3118
0444
edit
dl
rm
File::Spec::Unix.3pm
9837
0444
edit
dl
rm
File::Spec::VMS.3pm
6389
0444
edit
dl
rm
File::Spec::Win32.3pm
6451
0444
edit
dl
rm
File::Temp.3pm
36799
0444
edit
dl
rm
File::Which.3pm
9746
0444
edit
dl
rm
Getopt::Long.3pm
52647
0444
edit
dl
rm
HDB.3pm
10947
0444
edit
dl
rm
HDB::CMDS.3pm
18894
0444
edit
dl
rm
HDB::Encode.3pm
7863
0444
edit
dl
rm
HDB::Object.3pm
10057
0444
edit
dl
rm
HTML::AsSubs.3pm
8586
0444
edit
dl
rm
HTML::Element.3pm
70793
0444
edit
dl
rm
HTML::Element::traverse.3pm
15984
0444
edit
dl
rm
HTML::Form.3pm
28158
0444
edit
dl
rm
HTML::Parse.3pm
8277
0444
edit
dl
rm
HTML::Tree.3pm
9982
0444
edit
dl
rm
HTML::Tree::AboutObjects.3pm
37918
0444
edit
dl
rm
HTML::Tree::AboutTrees.3pm
58534
0444
edit
dl
rm
HTML::Tree::Scanning.3pm
34385
0444
edit
dl
rm
HTML::TreeBuilder.3pm
30138
0444
edit
dl
rm
HTTP::Tiny.3pm
27709
0444
edit
dl
rm
IO::AtomicFile.3pm
5381
0444
edit
dl
rm
IO::Compress::Base.3pm
3506
0444
edit
dl
rm
IO::Compress::Bzip2.3pm
23260
0444
edit
dl
rm
IO::Compress::Deflate.3pm
26768
0444
edit
dl
rm
IO::Compress::FAQ.3pm
26718
0444
edit
dl
rm
IO::Compress::Gzip.3pm
34489
0444
edit
dl
rm
IO::Compress::RawDeflate.3pm
27134
0444
edit
dl
rm
IO::Compress::Zip.3pm
40870
0444
edit
dl
rm
IO::InnerFile.3pm
6035
0444
edit
dl
rm
IO::Lines.3pm
3783
0444
edit
dl
rm
IO::Pty.3pm
8579
0444
edit
dl
rm
IO::Scalar.3pm
10679
0444
edit
dl
rm
IO::ScalarArray.3pm
10528
0444
edit
dl
rm
IO::Stringy.3pm
4049
0444
edit
dl
rm
IO::Tty.3pm
8348
0444
edit
dl
rm
IO::Tty::Constant.3pm
10012
0444
edit
dl
rm
IO::Uncompress::AnyInflate.3pm
32800
0444
edit
dl
rm
IO::Uncompress::AnyUncompress.3pm
30767
0444
edit
dl
rm
IO::Uncompress::Base.3pm
3518
0444
edit
dl
rm
IO::Uncompress::Bunzip2.3pm
29171
0444
edit
dl
rm
IO::Uncompress::Gunzip.3pm
31719
0444
edit
dl
rm
IO::Uncompress::Inflate.3pm
29915
0444
edit
dl
rm
IO::Uncompress::RawInflate.3pm
29563
0444
edit
dl
rm
IO::Uncompress::Unzip.3pm
31279
0444
edit
dl
rm
IO::Wrap.3pm
10664
0444
edit
dl
rm
IO::WrapTie.3pm
14987
0444
edit
dl
rm
JSON::PP.3pm
50080
0444
edit
dl
rm
JSON::PP::Boolean.3pm
2667
0444
edit
dl
rm
JSON::Syck.3pm
8094
0444
edit
dl
rm
JSON::XS.3pm
89037
0444
edit
dl
rm
JSON::XS::Boolean.3pm
2857
0444
edit
dl
rm
lib::core::only.3pm
5647
0444
edit
dl
rm
local::lib.3pm
31390
0444
edit
dl
rm
LWP.3pm
28506
0444
edit
dl
rm
LWP::Authen::Ntlm.3pm
7489
0444
edit
dl
rm
LWP::ConnCache.3pm
9967
0444
edit
dl
rm
LWP::Debug.3pm
5608
0444
edit
dl
rm
LWP::MemberMixin.3pm
4821
0444
edit
dl
rm
LWP::Protocol.3pm
8350
0444
edit
dl
rm
LWP::Protocol::https.3pm
5684
0444
edit
dl
rm
LWP::RobotUA.3pm
9022
0444
edit
dl
rm
LWP::Simple.3pm
9016
0444
edit
dl
rm
LWP::UserAgent.3pm
48156
0444
edit
dl
rm
lwpcook.3pm
14838
0444
edit
dl
rm
lwptut.3pm
32441
0444
edit
dl
rm
Module::Build.3pm
44563
0444
edit
dl
rm
Module::Build::API.3pm
89267
0444
edit
dl
rm
Module::Build::Authoring.3pm
17363
0444
edit
dl
rm
Module::Build::Base.3pm
5157
0444
edit
dl
rm
Module::Build::Bundling.3pm
9999
0444
edit
dl
rm
Module::Build::Compat.3pm
10885
0444
edit
dl
rm
Module::Build::ConfigData.3pm
7388
0444
edit
dl
rm
Module::Build::Cookbook.3pm
25946
0444
edit
dl
rm
Module::Build::Notes.3pm
4690
0444
edit
dl
rm
Module::Build::Platform::aix.3pm
4472
0444
edit
dl
rm
Module::Build::Platform::cygwin.3pm
4505
0444
edit
dl
rm
Module::Build::Platform::darwin.3pm
4491
0444
edit
dl
rm
Module::Build::Platform::Default.3pm
4490
0444
edit
dl
rm
Module::Build::Platform::MacOS.3pm
5398
0444
edit
dl
rm
Module::Build::Platform::os2.3pm
4474
0444
edit
dl
rm
Module::Build::Platform::Unix.3pm
4481
0444
edit
dl
rm
Module::Build::Platform::VMS.3pm
7885
0444
edit
dl
rm
Module::Build::Platform::VOS.3pm
4477
0444
edit
dl
rm
Module::Build::Platform::Windows.3pm
4529
0444
edit
dl
rm
Module::Build::PPMMaker.3pm
4886
0444
edit
dl
rm
Mozilla::CA.3pm
3571
0444
edit
dl
rm
Net::CIDR::Lite.3pm
9562
0444
edit
dl
rm
Net::Cmd.3pm
11545
0444
edit
dl
rm
Net::Config.3pm
8100
0444
edit
dl
rm
Net::Domain.3pm
3835
0444
edit
dl
rm
Net::FTP.3pm
27341
0444
edit
dl
rm
Net::FTP::dataconn.3pm
3979
0444
edit
dl
rm
Net::HTTP.3pm
16375
0444
edit
dl
rm
Net::HTTP::NB.3pm
5394
0444
edit
dl
rm
Net::HTTPS.3pm
5438
0444
edit
dl
rm
Net::IP.3pm
27697
0444
edit
dl
rm
Net::libnetFAQ.3pm
14746
0444
edit
dl
rm
Net::Netrc.3pm
6729
0444
edit
dl
rm
Net::NNTP.3pm
23193
0444
edit
dl
rm
Net::POP3.3pm
12259
0444
edit
dl
rm
Net::SMTP.3pm
18880
0444
edit
dl
rm
Net::SSLeay.3pm
349350
0444
edit
dl
rm
Net::SSLeay::Handle.3pm
9127
0444
edit
dl
rm
Net::Time.3pm
4524
0444
edit
dl
rm
ok.3pm
2851
0444
edit
dl
rm
Parse::CPAN::Meta.3pm
10187
0444
edit
dl
rm
POD2::DE::local::lib.3pm
22879
0444
edit
dl
rm
POD2::PT_BR::local::lib.3pm
22762
0444
edit
dl
rm
Socket.3pm
34078
0444
edit
dl
rm
Sub::Identify.3pm
5087
0444
edit
dl
rm
SUPER.3pm
7394
0444
edit
dl
rm
Switch.3pm
19014
0444
edit
dl
rm
TAP::Base.3pm
3401
0444
edit
dl
rm
TAP::Formatter::Base.3pm
6233
0444
edit
dl
rm
TAP::Formatter::Color.3pm
3717
0444
edit
dl
rm
TAP::Formatter::Console.3pm
2722
0444
edit
dl
rm
TAP::Formatter::Console::ParallelSession.3pm
3065
0444
edit
dl
rm
TAP::Formatter::Console::Session.3pm
2832
0444
edit
dl
rm
TAP::Formatter::File.3pm
2693
0444
edit
dl
rm
TAP::Formatter::File::Session.3pm
2847
0444
edit
dl
rm
TAP::Formatter::Session.3pm
3603
0444
edit
dl
rm
TAP::Harness.3pm
21300
0444
edit
dl
rm
TAP::Harness::Beyond.3pm
19118
0444
edit
dl
rm
TAP::Harness::Env.3pm
5467
0444
edit
dl
rm
TAP::Object.3pm
4497
0444
edit
dl
rm
TAP::Parser.3pm
42210
0444
edit
dl
rm
TAP::Parser::Aggregator.3pm
8023
0444
edit
dl
rm
TAP::Parser::Grammar.3pm
8647
0444
edit
dl
rm
TAP::Parser::Iterator.3pm
4993
0444
edit
dl
rm
TAP::Parser::Iterator::Array.3pm
3771
0444
edit
dl
rm
TAP::Parser::Iterator::Process.3pm
4601
0444
edit
dl
rm
TAP::Parser::Iterator::Stream.3pm
3712
0444
edit
dl
rm
TAP::Parser::IteratorFactory.3pm
6904
0444
edit
dl
rm
TAP::Parser::Multiplexer.3pm
4646
0444
edit
dl
rm
TAP::Parser::Result.3pm
7512
0444
edit
dl
rm
TAP::Parser::Result::Bailout.3pm
3293
0444
edit
dl
rm
TAP::Parser::Result::Comment.3pm
3118
0444
edit
dl
rm
TAP::Parser::Result::Plan.3pm
4173
0444
edit
dl
rm
TAP::Parser::Result::Pragma.3pm
3073
0444
edit
dl
rm
TAP::Parser::Result::Test.3pm
7114
0444
edit
dl
rm
TAP::Parser::Result::Unknown.3pm
2973
0444
edit
dl
rm
TAP::Parser::Result::Version.3pm
3154
0444
edit
dl
rm
TAP::Parser::Result::YAML.3pm
3086
0444
edit
dl
rm
TAP::Parser::ResultFactory.3pm
5523
0444
edit
dl
rm
TAP::Parser::Scheduler.3pm
8113
0444
edit
dl
rm
TAP::Parser::Scheduler::Job.3pm
4301
0444
edit
dl
rm
TAP::Parser::Scheduler::Spinner.3pm
3346
0444
edit
dl
rm
TAP::Parser::Source.3pm
8170
0444
edit
dl
rm
TAP::Parser::SourceHandler.3pm
7559
0444
edit
dl
rm
TAP::Parser::SourceHandler::Executable.3pm
5297
0444
edit
dl
rm
TAP::Parser::SourceHandler::File.3pm
4567
0444
edit
dl
rm
TAP::Parser::SourceHandler::Handle.3pm
4425
0444
edit
dl
rm
TAP::Parser::SourceHandler::Perl.3pm
6262
0444
edit
dl
rm
TAP::Parser::SourceHandler::RawTAP.3pm
4434
0444
edit
dl
rm
TAP::Parser::YAMLish::Reader.3pm
3995
0444
edit
dl
rm
TAP::Parser::YAMLish::Writer.3pm
4879
0444
edit
dl
rm
Template.3pm
27909
0444
edit
dl
rm
Template::Base.3pm
8149
0444
edit
dl
rm
Template::Config.3pm
8687
0444
edit
dl
rm
Template::Constants.3pm
7815
0444
edit
dl
rm
Template::Context.3pm
26637
0444
edit
dl
rm
Template::Directive.3pm
4821
0444
edit
dl
rm
Template::Document.3pm
11829
0444
edit
dl
rm
Template::Exception.3pm
6763
0444
edit
dl
rm
Template::FAQ.3pm
14564
0444
edit
dl
rm
Template::Filters.3pm
9817
0444
edit
dl
rm
Template::Grammar.3pm
5039
0444
edit
dl
rm
Template::Iterator.3pm
11413
0444
edit
dl
rm
Template::Manual.3pm
6317
0444
edit
dl
rm
Template::Manual::Config.3pm
79504
0444
edit
dl
rm
Template::Manual::Credits.3pm
8246
0444
edit
dl
rm
Template::Manual::Directives.3pm
77293
0444
edit
dl
rm
Template::Manual::Filters.3pm
20810
0444
edit
dl
rm
Template::Manual::Internals.3pm
23433
0444
edit
dl
rm
Template::Manual::Intro.3pm
14092
0444
edit
dl
rm
Template::Manual::Plugins.3pm
13780
0444
edit
dl
rm
Template::Manual::Syntax.3pm
14549
0444
edit
dl
rm
Template::Manual::Variables.3pm
33110
0444
edit
dl
rm
Template::Manual::Views.3pm
25953
0444
edit
dl
rm
Template::Manual::VMethods.3pm
28195
0444
edit
dl
rm
Template::Modules.3pm
9827
0444
edit
dl
rm
Template::Namespace::Constants.3pm
6002
0444
edit
dl
rm
Template::Parser.3pm
9917
0444
edit
dl
rm
Template::Plugin.3pm
10937
0444
edit
dl
rm
Template::Plugin::Assert.3pm
5446
0444
edit
dl
rm
Template::Plugin::CGI.3pm
6188
0444
edit
dl
rm
Template::Plugin::Datafile.3pm
6601
0444
edit
dl
rm
Template::Plugin::Date.3pm
9538
0444
edit
dl
rm
Template::Plugin::Directory.3pm
11979
0444
edit
dl
rm
Template::Plugin::Dumper.3pm
6078
0444
edit
dl
rm
Template::Plugin::File.3pm
13009
0444
edit
dl
rm
Template::Plugin::Filter.3pm
12936
0444
edit
dl
rm
Template::Plugin::Format.3pm
4895
0444
edit
dl
rm
Template::Plugin::HTML.3pm
7823
0444
edit
dl
rm
Template::Plugin::Image.3pm
11950
0444
edit
dl
rm
Template::Plugin::Iterator.3pm
5061
0444
edit
dl
rm
Template::Plugin::Math.3pm
6623
0444
edit
dl
rm
Template::Plugin::Pod.3pm
4784
0444
edit
dl
rm
Template::Plugin::Procedural.3pm
5631
0444
edit
dl
rm
Template::Plugin::Scalar.3pm
5032
0444
edit
dl
rm
Template::Plugin::String.3pm
17263
0444
edit
dl
rm
Template::Plugin::Table.3pm
11145
0444
edit
dl
rm
Template::Plugin::URL.3pm
8080
0444
edit
dl
rm
Template::Plugin::View.3pm
5479
0444
edit
dl
rm
Template::Plugin::Wrap.3pm
6433
0444
edit
dl
rm
Template::Plugins.3pm
9733
0444
edit
dl
rm
Template::Provider.3pm
14678
0444
edit
dl
rm
Template::Service.3pm
14813
0444
edit
dl
rm
Template::Stash.3pm
11983
0444
edit
dl
rm
Template::Stash::Context.3pm
7130
0444
edit
dl
rm
Template::Stash::XS.3pm
6644
0444
edit
dl
rm
Template::Test.3pm
15524
0444
edit
dl
rm
Template::Toolkit.3pm
9227
0444
edit
dl
rm
Template::Tools.3pm
5001
0444
edit
dl
rm
Template::Tools::tpage.3pm
5806
0444
edit
dl
rm
Template::Tools::ttree.3pm
16567
0444
edit
dl
rm
Template::Tutorial.3pm
4566
0444
edit
dl
rm
Template::Tutorial::Datafile.3pm
19539
0444
edit
dl
rm
Template::Tutorial::Web.3pm
34118
0444
edit
dl
rm
Template::View.3pm
12618
0444
edit
dl
rm
Template::VMethods.3pm
4688
0444
edit
dl
rm
Term::ReadKey.3pm
13029
0444
edit
dl
rm
Test2.3pm
9556
0444
edit
dl
rm
Test2::API.3pm
30424
0444
edit
dl
rm
Test2::API::Breakage.3pm
4988
0444
edit
dl
rm
Test2::API::Context.3pm
17574
0444
edit
dl
rm
Test2::API::Instance.3pm
12404
0444
edit
dl
rm
Test2::API::Stack.3pm
6568
0444
edit
dl
rm
Test2::Event.3pm
9189
0444
edit
dl
rm
Test2::Event::Bail.3pm
3470
0444
edit
dl
rm
Test2::Event::Diag.3pm
3338
0444
edit
dl
rm
Test2::Event::Exception.3pm
3520
0444
edit
dl
rm
Test2::Event::Generic.3pm
7662
0444
edit
dl
rm
Test2::Event::Info.3pm
4261
0444
edit
dl
rm
Test2::Event::Note.3pm
3323
0444
edit
dl
rm
Test2::Event::Ok.3pm
4255
0444
edit
dl
rm
Test2::Event::Plan.3pm
3907
0444
edit
dl
rm
Test2::Event::Skip.3pm
3665
0444
edit
dl
rm
Test2::Event::Subtest.3pm
3573
0444
edit
dl
rm
Test2::Event::Waiting.3pm
3107
0444
edit
dl
rm
Test2::Formatter.3pm
5208
0444
edit
dl
rm
Test2::Formatter::TAP.3pm
9255
0444
edit
dl
rm
Test2::Hub.3pm
16755
0444
edit
dl
rm
Test2::Hub::Interceptor.3pm
2937
0444
edit
dl
rm
Test2::Hub::Interceptor::Terminator.3pm
2980
0444
edit
dl
rm
Test2::Hub::Subtest.3pm
3803
0444
edit
dl
rm
Test2::IPC.3pm
3324
0444
edit
dl
rm
Test2::IPC::Driver.3pm
9512
0444
edit
dl
rm
Test2::IPC::Driver::Files.3pm
3822
0444
edit
dl
rm
Test2::Transition.3pm
18406
0444
edit
dl
rm
Test2::Util.3pm
5123
0444
edit
dl
rm
Test2::Util::ExternalMeta.3pm
5594
0444
edit
dl
rm
Test2::Util::HashBase.3pm
7463
0444
edit
dl
rm
Test2::Util::Trace.3pm
5577
0444
edit
dl
rm
Test::Builder.3pm
26915
0444
edit
dl
rm
Test::Builder::Formatter.3pm
3656
0444
edit
dl
rm
Test::Builder::IO::Scalar.3pm
9740
0444
edit
dl
rm
Test::Builder::Module.3pm
5567
0444
edit
dl
rm
Test::Builder::Tester.3pm
11550
0444
edit
dl
rm
Test::Builder::Tester::Color.3pm
3131
0444
edit
dl
rm
Test::Builder::TodoDiag.3pm
3129
0444
edit
dl
rm
Test::Fatal.3pm
9303
0444
edit
dl
rm
Test::HACKING.3pm
9253
0444
edit
dl
rm
Test::Harness.3pm
11028
0444
edit
dl
rm
Test::LeakTrace.3pm
10022
0444
edit
dl
rm
Test::LeakTrace::JA.3pm
12328
0444
edit
dl
rm
Test::LeakTrace::Script.3pm
5140
0444
edit
dl
rm
Test::MockModule.3pm
10818
0444
edit
dl
rm
Test::More.3pm
43215
0444
edit
dl
rm
Test::More::UTF8.3pm
3602
0444
edit
dl
rm
Test::RequiresInternet.3pm
3944
0444
edit
dl
rm
Test::Simple.3pm
9119
0444
edit
dl
rm
Test::Tester.3pm
15781
0444
edit
dl
rm
Test::Tester::Capture.3pm
2902
0444
edit
dl
rm
Test::Tester::CaptureRunner.3pm
2673
0444
edit
dl
rm
Test::Tutorial.3pm
24261
0444
edit
dl
rm
Test::use::ok.3pm
3841
0444
edit
dl
rm
Test::Warnings.3pm
14231
0444
edit
dl
rm
Text::Glob.3pm
6106
0444
edit
dl
rm
Text::Template.3pm
65499
0444
edit
dl
rm
Text::Template::Preprocess.3pm
6270
0444
edit
dl
rm
Time::Zone.3pm
3413
0444
edit
dl
rm
TimeDate.3pm
2397
0444
edit
dl
rm
Try::Tiny.3pm
20343
0444
edit
dl
rm
Types::Serialiser.3pm
11473
0444
edit
dl
rm
Types::Serialiser::Error.3pm
2705
0444
edit
dl
rm
version.3pm
13937
0444
edit
dl
rm
version::Internals.3pm
30287
0444
edit
dl
rm
WWW::Mechanize.3pm
68196
0444
edit
dl
rm
WWW::Mechanize::Cookbook.3pm
7159
0444
edit
dl
rm
WWW::Mechanize::Examples.3pm
22490
0444
edit
dl
rm
WWW::Mechanize::FAQ.3pm
24359
0444
edit
dl
rm
WWW::Mechanize::Image.3pm
6490
0444
edit
dl
rm
WWW::Mechanize::Link.3pm
6518
0444
edit
dl
rm
XML::NamespaceSupport.3pm
13052
0444
edit
dl
rm
XML::Parser.3pm
26296
0444
edit
dl
rm
XML::Parser::Expat.3pm
26799
0444
edit
dl
rm
XML::Parser::Style::Debug.3pm
4408
0444
edit
dl
rm
XML::Parser::Style::Objects.3pm
4888
0444
edit
dl
rm
XML::Parser::Style::Stream.3pm
5925
0444
edit
dl
rm
XML::Parser::Style::Subs.3pm
4863
0444
edit
dl
rm
XML::Parser::Style::Tree.3pm
5529
0444
edit
dl
rm
XML::SAX.3pm
9229
0444
edit
dl
rm
XML::SAX::Base.3pm
13704
0444
edit
dl
rm
XML::SAX::BuildSAXBase.3pm
13700
0444
edit
dl
rm
XML::SAX::DocumentLocator.3pm
5239
0444
edit
dl
rm
XML::SAX::Exception.3pm
5622
0444
edit
dl
rm
XML::SAX::Expat.3pm
6404
0444
edit
dl
rm
XML::SAX::Intro.3pm
20220
0444
edit
dl
rm
XML::SAX::ParserFactory.3pm
7919
0444
edit
dl
rm
XML::SAX::PurePerl.3pm
6172
0444
edit
dl
rm
XML::SAX::PurePerl::Reader.3pm
4103
0444
edit
dl
rm
XML::Simple.3pm
65589
0444
edit
dl
rm
XML::Simple::FAQ.3pm
27223
0444
edit
dl
rm
YAML.3pm
29980
0444
edit
dl
rm
YAML::Any.3pm
7487
0444
edit
dl
rm
YAML::Dumper.3pm
4776
0444
edit
dl
rm
YAML::Dumper::Base.3pm
4642
0444
edit
dl
rm
YAML::Error.3pm
4681
0444
edit
dl
rm
YAML::Loader.3pm
4766
0444
edit
dl
rm
YAML::Loader::Base.3pm
4642
0444
edit
dl
rm
YAML::Marshall.3pm
4640
0444
edit
dl
rm
YAML::Node.3pm
6743
0444
edit
dl
rm
YAML::Syck.3pm
10806
0444
edit
dl
rm
YAML::Tag.3pm
4499
0444
edit
dl
rm
YAML::Types.3pm
4716
0444
edit
dl
rm
Edit:
/usr/local/share/man/man3/AppConfig.3pm
(35289B)
.\" 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 "AppConfig 3" .TH AppConfig 3 "2015-03-01" "perl v5.16.3" "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" AppConfig \- Perl5 module for reading configuration files and parsing command line arguments. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use AppConfig; \& \& # create a new AppConfig object \& my $config = AppConfig\->new( \e%cfg ); \& \& # define a new variable \& $config\->define( $varname => \e%varopts ); \& \& # create/define combined \& my $config = AppConfig\->new( \e%cfg, \& $varname => \e%varopts, \& $varname => \e%varopts, \& ... \& ); \& \& # set/get the value \& $config\->set( $varname, $value ); \& $config\->get($varname); \& \& # shortcut form \& $config\->varname($value); \& $config\->varname; \& \& # read configuration file \& $config\->file($file); \& \& # parse command line options \& $config\->args(\e@args); # default to \e@ARGV \& \& # advanced command line options with Getopt::Long \& $config\->getopt(\e@args); # default to \e@ARGV \& \& # parse CGI parameters (GET method) \& $config\->cgi($query); # default to $ENV{ QUERY_STRING } .Ve .SH "OVERVIEW" .IX Header "OVERVIEW" AppConfig is a Perl5 module for managing application configuration information. It maintains the state of any number of variables and provides methods for parsing configuration files, command line arguments and \s-1CGI\s0 script parameters. .PP Variables values may be set via configuration files. Variables may be flags (On/Off), take a single value, or take multiple values stored as a list or hash. The number of arguments a variable expects is determined by its configuration when defined. .PP .Vb 4 \& # flags \& verbose \& nohelp \& debug = On \& \& # single value \& home = /home/abw/ \& \& # multiple list value \& file = /tmp/file1 \& file = /tmp/file2 \& \& # multiple hash value \& book camel = Programming Perl \& book llama = Learning Perl .Ve .PP The '\-' prefix can be used to reset a variable to its default value and the '+' prefix can be used to set it to 1 .PP .Vb 2 \& \-verbose \& +debug .Ve .PP Variable, environment variable and tilde (home directory) expansions can be applied (selectively, if necessary) to the values read from configuration files: .PP .Vb 4 \& home = ~ # home directory \& nntp = ${NNTPSERVER} # environment variable \& html = $home/html # internal variables \& img = $html/images .Ve .PP Configuration files may be arranged in blocks as per the style of Win32 \&\*(L"\s-1INI\*(R"\s0 files. .PP .Vb 5 \& [file] \& site = kfs \& src = ~/websrc/docs/$site \& lib = ~/websrc/lib \& dest = ~/public_html/$site \& \& [page] \& header = $lib/header \& footer = $lib/footer .Ve .PP You can also use Perl's \*(L"heredoc\*(R" syntax to define a large block of text in a configuration file. .PP .Vb 4 \& multiline = <<FOOBAR \& line 1 \& line 2 \& FOOBAR \& \& paths exe = "${PATH}:${HOME}/.bin" \& paths link = <<\*(AqFOO\*(Aq \& ${LD_LIBARRAY_PATH}:${HOME}/lib \& FOO .Ve .PP Variables may also be set by parsing command line arguments. .PP .Vb 1 \& myapp \-verbose \-site kfs \-file f1 \-file f2 .Ve .PP AppConfig provides a simple method (\fIargs()\fR) for parsing command line arguments. A second method (\fIgetopt()\fR) allows more complex argument processing by delegation to Johan Vroman's Getopt::Long module. .PP AppConfig also allows variables to be set by parameters passed to a \&\s-1CGI\s0 script via the \s-1URL \s0(\s-1GET\s0 method). .PP .Vb 1 \& http://www.nowhere.com/cgi\-bin/myapp?verbose&site=kfs .Ve .SH "PREREQUISITES" .IX Header "PREREQUISITES" AppConfig requires Perl 5.005 or later. .PP The Getopt::Long and Test::More modules should be installed. If you are using a recent version of Perl (e.g. 5.8.0) then these should already be installed. .SH "OBTAINING AND INSTALLING THE AppConfig MODULE BUNDLE" .IX Header "OBTAINING AND INSTALLING THE AppConfig MODULE BUNDLE" The AppConfig module bundle is available from \s-1CPAN. \s0 As the 'perlmod' manual page explains: .PP .Vb 3 \& CPAN stands for the Comprehensive Perl Archive Network. \& This is a globally replicated collection of all known Perl \& materials, including hundreds of unbundled modules. \& \& [...] \& \& For an up\-to\-date listing of CPAN sites, see \& http://www.perl.com/perl/ or ftp://ftp.perl.com/perl/ . .Ve .PP Within the \s-1CPAN\s0 archive, AppConfig is in the category: .PP .Vb 1 \& 12) Option, Argument, Parameter and Configuration File Processing .Ve .PP The module is available in the following directories: .PP .Vb 2 \& /modules/by\-module/AppConfig/AppConfig\-<version>.tar.gz \& /authors/id/ABW/AppConfig\-<version>.tar.gz .Ve .PP AppConfig is distributed as a single gzipped tar archive file: .PP .Vb 1 \& AppConfig\-<version>.tar.gz .Ve .PP Note that \*(L"<version>\*(R" represents the current AppConfig version number, of the form \*(L"n.nn\*(R", e.g. \*(L"3.14\*(R". See the \s-1REVISION\s0 section below to determine the current version number for AppConfig. .PP Unpack the archive to create a AppConfig installation directory: .PP .Vb 2 \& gunzip AppConfig\-<version>.tar.gz \& tar xvf AppConfig\-<version>.tar .Ve .PP \&'cd' into that directory, make, test and install the modules: .PP .Vb 5 \& cd AppConfig\-<version> \& perl Makefile.PL \& make \& make test \& make install .Ve .PP The 't' sub-directory contains a number of test scripts that are run when a 'make test' is run. .PP The 'make install' will install the module on your system. You may need administrator privileges to perform this task. If you install the module in a local directory (for example, by executing \*(L"perl Makefile.PL LIB=~/lib\*(R" in the above \- see \f(CW\*(C`perldoc MakeMaker\*(C'\fR for full details), you will need to ensure that the \s-1PERL5LIB\s0 environment variable is set to include the location, or add a line to your scripts explicitly naming the library location: .PP .Vb 1 \& use lib \*(Aq/local/path/to/lib\*(Aq; .Ve .PP The 'examples' sub-directory contains some simple examples of using the AppConfig modules. .SH "DESCRIPTION" .IX Header "DESCRIPTION" .SS "\s-1USING THE\s0 AppConfig \s-1MODULE\s0" .IX Subsection "USING THE AppConfig MODULE" To import and use the AppConfig module the following line should appear in your Perl script: .PP .Vb 1 \& use AppConfig; .Ve .PP To import constants defined by the AppConfig module, specify the name of one or more of the constant or tag sets as parameters to \f(CW\*(C`use\*(C'\fR: .PP .Vb 1 \& use AppConfig qw(:expand :argcount); .Ve .PP See \*(L"\s-1CONSTANT DEFINITIONS\*(R"\s0 below for more information on the constant tagsets defined by AppConfig. .PP AppConfig is implemented using object-oriented methods. A new AppConfig object is created and initialized using the \&\fInew()\fR method. This returns a reference to a new AppConfig object. .PP .Vb 1 \& my $config = AppConfig\->new(); .Ve .PP This will create and return a reference to a new AppConfig object. .PP In doing so, the AppConfig object also creates an internal reference to an AppConfig::State object in which to store variable state. All arguments passed into the AppConfig constructor are passed directly to the AppConfig::State constructor. .PP The first (optional) parameter may be a reference to a hash array containing configuration information. .PP .Vb 8 \& my $config = AppConfig\->new( { \& CASE => 1, \& ERROR => \e&my_error, \& GLOBAL => { \& DEFAULT => "<unset>", \& ARGCOUNT => ARGCOUNT_ONE, \& }, \& } ); .Ve .PP See AppConfig::State for full details of the configuration options available. These are, in brief: .IP "\s-1CASE\s0" 4 .IX Item "CASE" Used to set case sensitivity for variable names (default: off). .IP "\s-1CREATE\s0" 4 .IX Item "CREATE" Used to indicate that undefined variables should be created automatically (default: off). .IP "\s-1GLOBAL \s0" 4 .IX Item "GLOBAL " Reference to a hash array of global values used by default when defining variables. Valid global values are \s-1DEFAULT, ARGCOUNT, EXPAND, VALIDATE\s0 and \s-1ACTION.\s0 .IP "\s-1PEDANTIC\s0" 4 .IX Item "PEDANTIC" Used to indicate that command line and configuration file parsing routines should return immediately on encountering an error. .IP "\s-1ERROR\s0" 4 .IX Item "ERROR" Used to provide a error handling routine. Arguments as per \fIprintf()\fR. .PP Subsequent parameters may be variable definitions. These are passed to the \fIdefine()\fR method, described below in \*(L"\s-1DEFINING VARIABLES\*(R"\s0. .PP .Vb 2 \& my $config = AppConfig\->new("foo", "bar", "baz"); \& my $config = AppConfig\->new( { CASE => 1 }, qw(foo bar baz) ); .Ve .PP Note that any unresolved method calls to AppConfig are automatically delegated to the AppConfig::State object. In practice, it means that it is possible to treat the AppConfig object as if it were an AppConfig::State object: .PP .Vb 2 \& # create AppConfig \& my $config = AppConfig\->new(\*(Aqfoo\*(Aq, \*(Aqbar\*(Aq); \& \& # methods get passed through to internal AppConfig::State \& $config\->foo(100); \& $config\->set(\*(Aqbar\*(Aq, 200); \& $config\->define(\*(Aqbaz\*(Aq); \& $config\->baz(300); .Ve .SS "\s-1DEFINING VARIABLES\s0" .IX Subsection "DEFINING VARIABLES" The \f(CW\*(C`define()\*(C'\fR method (delegated to AppConfig::State) is used to pre-declare a variable and specify its configuration. .PP .Vb 1 \& $config\->define("foo"); .Ve .PP Variables may also be defined directly from the AppConfig \fInew()\fR constructor. .PP .Vb 1 \& my $config = AppConfig\->new("foo"); .Ve .PP In both simple examples above, a new variable called \*(L"foo\*(R" is defined. A reference to a hash array may also be passed to specify configuration information for the variable: .PP .Vb 4 \& $config\->define("foo", { \& DEFAULT => 99, \& ALIAS => \*(Aqmetavar1\*(Aq, \& }); .Ve .PP Configuration items specified in the \s-1GLOBAL\s0 option to the module constructor are applied by default when variables are created. e.g. .PP .Vb 6 \& my $config = AppConfig\->new( { \& GLOBAL => { \& DEFAULT => "<undef>", \& ARGCOUNT => ARGCOUNT_ONE, \& } \& } ); \& \& $config\->define("foo"); \& $config\->define("bar", { ARGCOUNT => ARGCOUNT_NONE } ); .Ve .PP is equivalent to: .PP .Vb 1 \& my $config = AppConfig\->new(); \& \& $config\->define( "foo", { \& DEFAULT => "<undef>", \& ARGCOUNT => ARGCOUNT_ONE, \& } ); \& \& $config\->define( "bar", \& DEFAULT => "<undef>", \& ARGCOUNT => ARGCOUNT_NONE, \& } ); .Ve .PP Multiple variables may be defined in the same call to \fIdefine()\fR. Configuration hashes for variables can be omitted. .PP .Vb 1 \& $config\->define("foo", "bar" => { ALIAS = "boozer" }, "baz"); .Ve .PP See AppConfig::State for full details of the configuration options available when defining variables. These are, in brief: .IP "\s-1DEFAULT\s0" 4 .IX Item "DEFAULT" The default value for the variable (default: undef). .IP "\s-1ALIAS\s0" 4 .IX Item "ALIAS" One or more (list reference or \*(L"list|like|this\*(R") alternative names for the variable. .IP "\s-1ARGCOUNT\s0" 4 .IX Item "ARGCOUNT" Specifies the number and type of arguments that the variable expects. Constants in \f(CW\*(C`:expand\*(C'\fR tag set define \s-1ARGCOUNT_NONE \-\s0 simple on/off flag (default), \s-1ARGCOUNT_ONE \-\s0 single value, \s-1ARGCOUNT_LIST \-\s0 multiple values accessed via list reference, \s-1ARGCOUNT_HASH \-\s0 hash table, \*(L"key=value\*(R", accessed via hash reference. .IP "\s-1ARGS \s0" 4 .IX Item "ARGS " Used to provide an argument specification string to pass to Getopt::Long via AppConfig::Getopt. E.g. \*(L"=i\*(R", \*(L":s\*(R", \*(L"=s@\*(R". This can also be used to implicitly set the \s-1ARGCOUNT\s0 value (\f(CW\*(C`/^!/\*(C'\fR = \s-1ARGCOUNT_NONE, \s0\f(CW\*(C`/@/\*(C'\fR = \&\s-1ARGCOUNT_LIST, \s0\f(CW\*(C`/%/\*(C'\fR = \s-1ARGCOUNT_HASH, \s0\f(CW\*(C`/[=:].*/\*(C'\fR = \s-1ARGCOUNT_ONE\s0) .IP "\s-1EXPAND\s0" 4 .IX Item "EXPAND" Specifies which variable expansion policies should be used when parsing configuration files. Constants in \f(CW\*(C`:expand\*(C'\fR tag set define: .Sp .Vb 5 \& EXPAND_NONE \- no expansion (default) \& EXPAND_VAR \- expand C<$var> or C<$(var)> as other variables \& EXPAND_UID \- expand C<~> and C<~uid> as user\*(Aqs home directory \& EXPAND_ENV \- expand C<${var}> as environment variable \& EXPAND_ALL \- do all expansions. .Ve .IP "\s-1VALIDATE\s0" 4 .IX Item "VALIDATE" Regex which the intended variable value should match or code reference which returns 1 to indicate successful validation (variable may now be set). .IP "\s-1ACTION\s0" 4 .IX Item "ACTION" Code reference to be called whenever variable value changes. .SS "\s-1COMPACT FORMAT DEFINITION\s0" .IX Subsection "COMPACT FORMAT DEFINITION" Variables can be specified using a compact format. This is identical to the specification format of Getopt::Long and is of the form: .PP .Vb 1 \& "name|alias|alias<argopts>" .Ve .PP The first element indicates the variable name and subsequent \s-1ALIAS \s0 values may be added, each separated by a vertical bar '|'. .PP The <argopts> element indicates the \s-1ARGCOUNT\s0 value and may be one of the following; .PP .Vb 4 \& ! ARGCOUNT_NONE \& =s ARGCOUNT_ONE \& =s@ ARGCOUNT_LIST \& =s% ARGCOUNT_HASH .Ve .PP Additional constructs supported by Getopt::Long may be specified instead of the \*(L"=s\*(R" element (e.g. \*(L"=f\*(R"). The entire <argopts> element is stored in the \s-1ARGS\s0 parameter for the variable and is passed intact to Getopt::Long when the \fIgetopt()\fR method is called. .PP The following examples demonstrate use of the compact format, with their equivalent full specifications: .PP .Vb 1 \& $config\->define("foo|bar|baz!"); \& \& $config\->define( \& "foo" => { \& ALIAS => "bar|baz", \& ARGCOUNT => ARGCOUNT_NONE, \& }); \& \& $config\->define("name=s"); \& \& $config\->define( \& "name" => { \& ARGCOUNT => ARGCOUNT_ONE, \& }); \& \& $config\->define("file|filelist|f=s@"); \& \& $config\->define( \& "file" => { \& ALIAS => "filelist|f", \& ARGCOUNT => ARGCOUNT_LIST, \& }); \& \& $config\->define("user|u=s%"); \& \& $config\->define( \& "user" => { \& ALIAS => "u", \& ARGCOUNT => ARGCOUNT_HASH, \& }); .Ve .PP Additional configuration options may be specified by hash reference, as per normal. The compact definition format will override any configuration values provided for \s-1ARGS\s0 and \s-1ARGCOUNT.\s0 .PP .Vb 1 \& $config\->define("file|filelist|f=s@", { VALIDATE => \e&check_file } ); .Ve .SS "\s-1READING AND MODIFYING VARIABLE VALUES\s0" .IX Subsection "READING AND MODIFYING VARIABLE VALUES" AppConfig defines two methods (via AppConfig::State) to manipulate variable values .PP .Vb 2 \& set($variable, $value); \& get($variable); .Ve .PP Once defined, variables may be accessed directly as object methods where the method name is the same as the variable name. i.e. .PP .Vb 1 \& $config\->set("verbose", 1); .Ve .PP is equivalent to .PP .Vb 1 \& $config\->verbose(1); .Ve .PP Note that AppConfig defines the following methods: .PP .Vb 4 \& new(); \& file(); \& args(); \& getopt(); .Ve .PP And also, through delegation to AppConfig::State: .PP .Vb 4 \& define() \& get() \& set() \& varlist() .Ve .PP If you define a variable with one of the above names, you will not be able to access it directly as an object method. i.e. .PP .Vb 1 \& $config\->file(); .Ve .PP This will call the \fIfile()\fR method, instead of returning the value of the \&'file' variable. You can work around this by explicitly calling \fIget()\fR and \&\fIset()\fR on a variable whose name conflicts: .PP .Vb 1 \& $config\->get(\*(Aqfile\*(Aq); .Ve .PP or by defining a \*(L"safe\*(R" alias by which the variable can be accessed: .PP .Vb 3 \& $config\->define("file", { ALIAS => "fileopt" }); \&or \& $config\->define("file|fileopt"); \& \& ... \& $config\->fileopt(); .Ve .PP Without parameters, the current value of the variable is returned. If a parameter is specified, the variable is set to that value and the result of the \fIset()\fR operation is returned. .PP .Vb 2 \& $config\->age(29); # sets \*(Aqage\*(Aq to 29, returns 1 (ok) \& print $config\->age(); # prints "29" .Ve .PP The \fIvarlist()\fR method can be used to extract a number of variables into a hash array. The first parameter should be a regular expression used for matching against the variable names. .PP .Vb 1 \& my %vars = $config\->varlist("^file"); # all "file*" variables .Ve .PP A second parameter may be specified (any true value) to indicate that the part of the variable name matching the regex should be removed when copied to the target hash. .PP .Vb 2 \& $config\->file_name("/tmp/file"); \& $config\->file_path("/foo:/bar:/baz"); \& \& my %vars = $config\->varlist("^file_", 1); \& \& # %vars: \& # name => /tmp/file \& # path => "/foo:/bar:/baz" .Ve .SS "\s-1READING CONFIGURATION FILES\s0" .IX Subsection "READING CONFIGURATION FILES" The AppConfig module provides a streamlined interface for reading configuration files with the AppConfig::File module. The \fIfile()\fR method automatically loads the AppConfig::File module and creates an object to process the configuration file or files. Variables stored in the internal AppConfig::State are automatically updated with values specified in the configuration file. .PP .Vb 1 \& $config\->file($filename); .Ve .PP Multiple files may be passed to \fIfile()\fR and should indicate the file name or be a reference to an open file handle or glob. .PP .Vb 1 \& $config\->file($filename, $filehandle, \e*STDIN, ...); .Ve .PP The file may contain blank lines and comments (prefixed by '#') which are ignored. Continutation lines may be marked by ending the line with a '\e'. .PP .Vb 5 \& # this is a comment \& callsign = alpha bravo camel delta echo foxtrot golf hipowls \e \& india juliet kilo llama mike november oscar papa \e \& quebec romeo sierra tango umbrella victor whiskey \e \& x\-ray yankee zebra .Ve .PP Variables that are simple flags and do not expect an argument (\s-1ARGCOUNT\s0 = \&\s-1ARGCOUNT_NONE\s0) can be specified without any value. They will be set with the value 1, with any value explicitly specified (except \*(L"0\*(R" and \*(L"off\*(R") being ignored. The variable may also be specified with a \*(L"no\*(R" prefix to implicitly set the variable to 0. .PP .Vb 7 \& verbose # on (1) \& verbose = 1 # on (1) \& verbose = 0 # off (0) \& verbose off # off (0) \& verbose on # on (1) \& verbose mumble # on (1) \& noverbose # off (0) .Ve .PP Variables that expect an argument (\s-1ARGCOUNT\s0 = \s-1ARGCOUNT_ONE\s0) will be set to whatever follows the variable name, up to the end of the current line (including any continuation lines). An optional equals sign may be inserted between the variable and value for clarity. .PP .Vb 2 \& room = /home/kitchen \& room /home/bedroom .Ve .PP Each subsequent re-definition of the variable value overwrites the previous value. .PP .Vb 1 \& print $config\->room(); # prints "/home/bedroom" .Ve .PP Variables may be defined to accept multiple values (\s-1ARGCOUNT\s0 = \s-1ARGCOUNT_LIST\s0). Each subsequent definition of the variable adds the value to the list of previously set values for the variable. .PP .Vb 2 \& drink = coffee \& drink = tea .Ve .PP A reference to a list of values is returned when the variable is requested. .PP .Vb 2 \& my $beverages = $config\->drink(); \& print join(", ", @$beverages); # prints "coffee, tea" .Ve .PP Variables may also be defined as hash lists (\s-1ARGCOUNT\s0 = \s-1ARGCOUNT_HASH\s0). Each subsequent definition creates a new key and value in the hash array. .PP .Vb 2 \& alias l="ls \-CF" \& alias e="emacs" .Ve .PP A reference to the hash is returned when the variable is requested. .PP .Vb 4 \& my $aliases = $config\->alias(); \& foreach my $k (keys %$aliases) { \& print "$k => $aliases\->{ $k }\en"; \& } .Ve .PP The '\-' prefix can be used to reset a variable to its default value and the '+' prefix can be used to set it to 1 .PP .Vb 2 \& \-verbose \& +debug .Ve .SS "\s-1VARIABLE EXPANSION\s0" .IX Subsection "VARIABLE EXPANSION" Variable values may contain references to other AppConfig variables, environment variables and/or users' home directories. These will be expanded depending on the \s-1EXPAND\s0 value for each variable or the \s-1GLOBAL EXPAND\s0 value. .PP Three different expansion types may be applied: .PP .Vb 2 \& bin = ~/bin # expand \*(Aq~\*(Aq to home dir if EXPAND_UID \& tmp = ~abw/tmp # as above, but home dir for user \*(Aqabw\*(Aq \& \& perl = $bin/perl # expand value of \*(Aqbin\*(Aq variable if EXPAND_VAR \& ripl = $(bin)/ripl # as above with explicit parens \& \& home = ${HOME} # expand HOME environment var if EXPAND_ENV .Ve .PP See AppConfig::State for more information on expanding variable values. .PP The configuration files may have variables arranged in blocks. A block header, consisting of the block name in square brackets, introduces a configuration block. The block name and an underscore are then prefixed to the names of all variables subsequently referenced in that block. The block continues until the next block definition or to the end of the current file. .PP .Vb 2 \& [block1] \& foo = 10 # block1_foo = 10 \& \& [block2] \& foo = 20 # block2_foo = 20 .Ve .SS "\s-1PARSING COMMAND LINE OPTIONS\s0" .IX Subsection "PARSING COMMAND LINE OPTIONS" There are two methods for processing command line options. The first, \&\fIargs()\fR, is a small and efficient implementation which offers basic functionality. The second, \fIgetopt()\fR, offers a more powerful and complete facility by delegating the task to Johan Vroman's Getopt::Long module. The trade-off between \fIargs()\fR and \fIgetopt()\fR is essentially one of speed/size against flexibility. Use as appropriate. Both implement on-demand loading of modules and incur no overhead until used. .PP The \fIargs()\fR method is used to parse simple command line options. It automatically loads the AppConfig::Args module and creates an object to process the command line arguments. Variables stored in the internal AppConfig::State are automatically updated with values specified in the arguments. .PP The method should be passed a reference to a list of arguments to parse. The \f(CW@ARGV\fR array is used if \fIargs()\fR is called without parameters. .PP .Vb 2 \& $config\->args(\e@myargs); \& $config\->args(); # uses @ARGV .Ve .PP Arguments are read and shifted from the array until the first is encountered that is not prefixed by '\-' or '\-\-'. At that point, the method returns 1 to indicate success, leaving any unprocessed arguments remaining in the list. .PP Each argument should be the name or alias of a variable prefixed by \&'\-' or '\-\-'. Arguments that are not prefixed as such (and are not an additional parameter to a previous argument) will cause a warning to be raised. If the \s-1PEDANTIC\s0 option is set, the method will return 0 immediately. With \s-1PEDANTIC\s0 unset (default), the method will continue to parse the rest of the arguments, returning 0 when done. .PP If the variable is a simple flag (\s-1ARGCOUNT\s0 = \s-1ARGCOUNT_NONE\s0) then it is set to the value 1. The variable may be prefixed by \*(L"no\*(R" to set its value to 0. .PP .Vb 3 \& myprog \-verbose \-\-debug \-notaste # $config\->verbose(1) \& # $config\->debug(1) \& # $config\->taste(0) .Ve .PP Variables that expect an additional argument (\s-1ARGCOUNT \s0!= 0) will be set to the value of the argument following it. .PP .Vb 1 \& myprog \-f /tmp/myfile # $config\->file(\*(Aq/tmp/file\*(Aq); .Ve .PP Variables that expect multiple values (\s-1ARGCOUNT\s0 = \s-1ARGCOUNT_LIST\s0 or \&\s-1ARGCOUNT_HASH\s0) will have successive values added each time the option is encountered. .PP .Vb 2 \& myprog \-file /tmp/foo \-file /tmp/bar # $config\->file(\*(Aq/tmp/foo\*(Aq) \& # $config\->file(\*(Aq/tmp/bar\*(Aq) \& \& # file => [ \*(Aq/tmp/foo\*(Aq, \*(Aq/tmp/bar\*(Aq ] \& \& myprog \-door "jim=Jim Morrison" \-door "ray=Ray Manzarek" \& # $config\->door("jim=Jim Morrison"); \& # $config\->door("ray=Ray Manzarek"); \& \& # door => { \*(Aqjim\*(Aq => \*(AqJim Morrison\*(Aq, \*(Aqray\*(Aq => \*(AqRay Manzarek\*(Aq } .Ve .PP See AppConfig::Args for further details on parsing command line arguments. .PP The \fIgetopt()\fR method provides a way to use the power and flexibility of the Getopt::Long module to parse command line arguments and have the internal values of the AppConfig object updates automatically. .PP The first (non-list reference) parameters may contain a number of configuration string to pass to Getopt::Long::Configure. A reference to a list of arguments may additionally be passed or \f(CW@ARGV\fR is used by default. .PP .Vb 4 \& $config\->getopt(); # uses @ARGV \& $config\->getopt(\e@myargs); \& $config\->getopt(qw(auto_abbrev debug)); # uses @ARGV \& $config\->getopt(qw(debug), \e@myargs); .Ve .PP See Getopt::Long for details of the configuration options available. .PP The \fIgetopt()\fR method constructs a specification string for each internal variable and then initializes Getopt::Long with these values. The specification string is constructed from the name, any aliases (delimited by a vertical bar '|') and the value of the \s-1ARGS\s0 parameter. .PP .Vb 4 \& $config\->define("foo", { \& ARGS => "=i", \& ALIAS => "bar|baz", \& }); \& \& # Getopt::Long specification: "foo|bar|baz=i" .Ve .PP Errors and warning generated by the Getopt::Long module are trapped and handled by the AppConfig error handler. This may be a user-defined routine installed with the \s-1ERROR\s0 configuration option. .PP Please note that the AppConfig::Getopt interface is still experimental and may not be 100% operational. This is almost undoubtedly due to problems in AppConfig::Getopt rather than Getopt::Long. .SS "\s-1PARSING CGI PARAMETERS\s0" .IX Subsection "PARSING CGI PARAMETERS" The \fIcgi()\fR method provides an interface to the AppConfig::CGI module for updating variable values based on the parameters appended to the \&\s-1URL\s0 for a \s-1CGI\s0 script. This is commonly known as the \s-1CGI \&\*(L"GET\*(R"\s0 method. The \s-1CGI \*(L"POST\*(R"\s0 method is currently not supported. .PP Parameter definitions are separated from the \s-1CGI\s0 script name by a question mark and from each other by ampersands. Where variables have specific values, these are appended to the variable with an equals sign: .PP .Vb 1 \& http://www.here.com/cgi\-bin/myscript?foo=bar&baz=qux&verbose \& \& # $config\->foo(\*(Aqbar\*(Aq); \& # $config\->baz(\*(Aqqux\*(Aq); \& # $config\->verbose(1); .Ve .PP Certain values specified in a \s-1URL\s0 must be escaped in the appropriate manner (see \s-1CGI\s0 specifications at http://www.w3c.org/ for full details). The AppConfig::CGI module automatically unescapes the \s-1CGI\s0 query string to restore the parameters to their intended values. .PP .Vb 1 \& http://where.com/mycgi?title=%22The+Wrong+Trousers%22 \& \& # $config\->title(\*(Aq"The Wrong Trousers"\*(Aq); .Ve .PP Please be considerate of the security implications of providing writable access to script variables via \s-1CGI.\s0 .PP .Vb 2 \& http://rebel.alliance.com/cgi\-bin/... \& .../send_report?file=%2Fetc%2Fpasswd&email=darth%40empire.com .Ve .PP To avoid any accidental or malicious changing of \*(L"private\*(R" variables, define only the \*(L"public\*(R" variables before calling the \fIcgi()\fR (or any other) method. Further variables can subsequently be defined which can not be influenced by the \s-1CGI\s0 parameters. .PP .Vb 2 \& $config\->define(\*(Aqverbose\*(Aq, \*(Aqdebug\*(Aq) \& $config\->cgi(); # can only set verbose and debug \& \& $config\->define(\*(Aqemail\*(Aq, \*(Aqfile\*(Aq); \& $config\->file($cfgfile); # can set verbose, debug, email + file .Ve .SH "CONSTANT DEFINITIONS" .IX Header "CONSTANT DEFINITIONS" A number of constants are defined by the AppConfig module. These may be accessed directly (e.g. AppConfig::EXPAND_VARS) or by first importing them into the caller's package. Constants are imported by specifying their names as arguments to \f(CW\*(C`use AppConfig\*(C'\fR or by importing a set of constants identified by its \*(L"tag set\*(R" name. .PP .Vb 1 \& use AppConfig qw(ARGCOUNT_NONE ARGCOUNT_ONE); \& \& use AppConfig qw(:argcount); .Ve .PP The following tag sets are defined: .IP ":expand" 4 .IX Item ":expand" The ':expand' tagset defines the following constants: .Sp .Vb 6 \& EXPAND_NONE \& EXPAND_VAR \& EXPAND_UID \& EXPAND_ENV \& EXPAND_ALL # EXPAND_VAR | EXPAND_UID | EXPAND_ENV \& EXPAND_WARN .Ve .Sp See AppConfig::File for full details of the use of these constants. .IP ":argcount" 4 .IX Item ":argcount" The ':argcount' tagset defines the following constants: .Sp .Vb 4 \& ARGCOUNT_NONE \& ARGCOUNT_ONE \& ARGCOUNT_LIST \& ARGCOUNT_HASH .Ve .Sp See AppConfig::State for full details of the use of these constants. .SH "REPOSITORY" .IX Header "REPOSITORY" <https://github.com/neilbowers/AppConfig> .SH "AUTHOR" .IX Header "AUTHOR" Andy Wardley, <abw@wardley.org> .PP With contributions from Dave Viner, Ijon Tichy, Axel Gerstmair and many others whose names have been lost to the sands of time (reminders welcome). .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (C) 1997\-2007 Andy Wardley. All Rights Reserved. .PP Copyright (C) 1997,1998 Canon Research Centre Europe Ltd. .PP This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .SH "SEE ALSO" .IX Header "SEE ALSO" AppConfig::State, AppConfig::File, AppConfig::Args, AppConfig::Getopt, AppConfig::CGI, Getopt::Long
Save
cmd:
run