From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- systems/texlive/tlnet/tlpkg/tlperl/lib/.packlist | 1654 + .../texlive/tlnet/tlpkg/tlperl/lib/AnyDBM_File.pm | 96 + systems/texlive/tlnet/tlpkg/tlperl/lib/App/Cpan.pm | 1692 + .../texlive/tlnet/tlpkg/tlperl/lib/App/Prove.pm | 829 + .../tlnet/tlpkg/tlperl/lib/App/Prove/State.pm | 548 + .../tlpkg/tlperl/lib/App/Prove/State/Result.pm | 233 + .../tlperl/lib/App/Prove/State/Result/Test.pm | 152 + .../texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar.pm | 2397 + .../tlnet/tlpkg/tlperl/lib/Archive/Tar/Constant.pm | 113 + .../tlnet/tlpkg/tlperl/lib/Archive/Tar/File.pm | 708 + .../tlnet/tlpkg/tlperl/lib/Attribute/Handlers.pm | 941 + .../texlive/tlnet/tlpkg/tlperl/lib/AutoLoader.pm | 453 + .../texlive/tlnet/tlpkg/tlperl/lib/AutoSplit.pm | 592 + systems/texlive/tlnet/tlpkg/tlperl/lib/B.pm | 1357 + .../texlive/tlnet/tlpkg/tlperl/lib/B/Concise.pm | 1920 + systems/texlive/tlnet/tlpkg/tlperl/lib/B/Debug.pm | 478 + .../texlive/tlnet/tlpkg/tlperl/lib/B/Deparse.pm | 6939 + .../texlive/tlnet/tlpkg/tlperl/lib/B/Op_private.pm | 897 + .../texlive/tlnet/tlpkg/tlperl/lib/B/Showlex.pm | 217 + systems/texlive/tlnet/tlpkg/tlperl/lib/B/Terse.pm | 104 + systems/texlive/tlnet/tlpkg/tlperl/lib/B/Xref.pm | 496 + .../texlive/tlnet/tlpkg/tlperl/lib/Benchmark.pm | 1123 + systems/texlive/tlnet/tlpkg/tlperl/lib/CORE.pod | 94 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/EXTERN.h | 57 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/INTERN.h | 51 + systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/XSUB.h | 704 + .../tlnet/tlpkg/tlperl/lib/CORE/arpa/inet.h | 4 + systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/av.h | 107 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/bitcount.h | 18 + .../tlpkg/tlperl/lib/CORE/charclass_invlists.h | 374656 ++++++++++++++++++ .../texlive/tlnet/tlpkg/tlperl/lib/CORE/config.h | 5230 + systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/cop.h | 1192 + systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/cv.h | 324 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/dirent.h | 53 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/dosish.h | 183 + .../tlnet/tlpkg/tlperl/lib/CORE/dquote_inline.h | 67 + .../tlnet/tlpkg/tlperl/lib/CORE/ebcdic_tables.h | 442 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/embed.h | 2198 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/embedvar.h | 499 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/fakesdio.h | 127 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/feature.h | 172 + systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/form.h | 27 + .../tlnet/tlpkg/tlperl/lib/CORE/git_version.h | 8 + systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/gv.h | 285 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/handy.h | 2506 + systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/hv.h | 657 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/hv_func.h | 277 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/hv_macro.h | 81 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/inline.h | 2136 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/intrpvar.h | 833 + .../tlnet/tlpkg/tlperl/lib/CORE/invlist_inline.h | 87 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/iperlsys.h | 1420 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/keywords.h | 274 + .../tlpkg/tlperl/lib/CORE/l1_char_class_tab.h | 796 + .../tlnet/tlpkg/tlperl/lib/CORE/libperl528.a | Bin 0 -> 1005130 bytes .../tlnet/tlpkg/tlperl/lib/CORE/malloc_ctl.h | 62 + .../tlnet/tlpkg/tlperl/lib/CORE/metaconfig.h | 26 + systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/mg.h | 80 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/mg_data.h | 299 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/mg_raw.h | 92 + .../tlnet/tlpkg/tlperl/lib/CORE/mg_vtable.h | 239 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/mydtrace.h | 54 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/netdb.h | 12 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/nostdio.h | 134 + systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/op.h | 1124 + .../tlnet/tlpkg/tlperl/lib/CORE/op_reg_common.h | 145 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/opcode.h | 3361 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/opnames.h | 443 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/overload.h | 98 + systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/pad.h | 520 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/parser.h | 165 + .../tlnet/tlpkg/tlperl/lib/CORE/patchlevel.h | 153 + systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perl.h | 7233 + .../tlnet/tlpkg/tlperl/lib/CORE/perl_inc_macro.h | 193 + .../tlnet/tlpkg/tlperl/lib/CORE/perl_langinfo.h | 190 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/perlapi.h | 248 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/perlhost.h | 2423 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/perlio.h | 343 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/perliol.h | 293 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/perlsdio.h | 21 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/perlvars.h | 308 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/perly.h | 188 + systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/pp.h | 685 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/pp_proto.h | 305 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/proto.h | 6494 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/reentr.h | 1444 + .../tlnet/tlpkg/tlperl/lib/CORE/regcharclass.h | 1906 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/regcomp.h | 1117 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/regexp.h | 902 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/regnodes.h | 783 + .../tlnet/tlpkg/tlperl/lib/CORE/sbox32_hash.h | 1783 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/scope.h | 337 + .../tlnet/tlpkg/tlperl/lib/CORE/stadtx_hash.h | 335 + systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sv.h | 2345 + .../tlnet/tlpkg/tlperl/lib/CORE/sys/errno2.h | 178 + .../tlnet/tlpkg/tlperl/lib/CORE/sys/socket.h | 327 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/thread.h | 437 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/time64.h | 69 + .../tlnet/tlpkg/tlperl/lib/CORE/time64_config.h | 85 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/uconfig.h | 5235 + .../tlnet/tlpkg/tlperl/lib/CORE/uni_keywords.h | 6762 + .../tlpkg/tlperl/lib/CORE/unicode_constants.h | 193 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/unixish.h | 171 + systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/utf8.h | 1198 + .../tlnet/tlpkg/tlperl/lib/CORE/utfebcdic.h | 518 + systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/util.h | 260 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/uudmap.h | 18 + systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/vdir.h | 715 + systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/vmem.h | 1247 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/vutil.h | 265 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/warnings.h | 242 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/win32.h | 751 + .../tlnet/tlpkg/tlperl/lib/CORE/win32iop-o.h | 327 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/win32iop.h | 497 + .../tlnet/tlpkg/tlperl/lib/CORE/win32thread.h | 192 + .../texlive/tlnet/tlpkg/tlperl/lib/CORE/wince.h | 146 + .../tlnet/tlpkg/tlperl/lib/CORE/zaphod32_hash.h | 322 + systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN.pm | 3997 + .../tlnet/tlpkg/tlperl/lib/CPAN/API/HOWTO.pod | 44 + .../texlive/tlnet/tlpkg/tlperl/lib/CPAN/Author.pm | 236 + .../texlive/tlnet/tlpkg/tlperl/lib/CPAN/Bundle.pm | 300 + .../tlnet/tlpkg/tlperl/lib/CPAN/CacheMgr.pm | 249 + .../tlnet/tlpkg/tlperl/lib/CPAN/Complete.pm | 175 + .../texlive/tlnet/tlpkg/tlperl/lib/CPAN/Debug.pm | 83 + .../tlnet/tlpkg/tlperl/lib/CPAN/DeferredCode.pm | 16 + .../tlnet/tlpkg/tlperl/lib/CPAN/Distribution.pm | 4476 + .../tlnet/tlpkg/tlperl/lib/CPAN/Distroprefs.pm | 481 + .../tlnet/tlpkg/tlperl/lib/CPAN/Distrostatus.pm | 45 + .../lib/CPAN/Exception/RecursiveDependency.pm | 113 + .../tlperl/lib/CPAN/Exception/blocked_urllist.pm | 46 + .../lib/CPAN/Exception/yaml_not_installed.pm | 23 + .../lib/CPAN/Exception/yaml_process_error.pm | 53 + systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/FTP.pm | 1146 + .../tlnet/tlpkg/tlperl/lib/CPAN/FTP/netrc.pm | 62 + .../tlnet/tlpkg/tlperl/lib/CPAN/FirstTime.pm | 2117 + .../tlnet/tlpkg/tlperl/lib/CPAN/HTTP/Client.pm | 254 + .../tlpkg/tlperl/lib/CPAN/HTTP/Credentials.pm | 91 + .../tlnet/tlpkg/tlperl/lib/CPAN/HandleConfig.pm | 800 + .../texlive/tlnet/tlpkg/tlperl/lib/CPAN/Index.pm | 626 + .../texlive/tlnet/tlpkg/tlperl/lib/CPAN/InfoObj.pm | 224 + .../texlive/tlnet/tlpkg/tlperl/lib/CPAN/Kwalify.pm | 136 + .../tlpkg/tlperl/lib/CPAN/Kwalify/distroprefs.dd | 150 + .../tlpkg/tlperl/lib/CPAN/Kwalify/distroprefs.yml | 92 + .../tlnet/tlpkg/tlperl/lib/CPAN/LWP/UserAgent.pm | 62 + .../texlive/tlnet/tlpkg/tlperl/lib/CPAN/Meta.pm | 1176 + .../tlnet/tlpkg/tlperl/lib/CPAN/Meta/Converter.pm | 1657 + .../tlnet/tlpkg/tlperl/lib/CPAN/Meta/Feature.pm | 153 + .../tlnet/tlpkg/tlperl/lib/CPAN/Meta/History.pm | 320 + .../tlperl/lib/CPAN/Meta/History/Meta_1_0.pod | 247 + .../tlperl/lib/CPAN/Meta/History/Meta_1_1.pod | 309 + .../tlperl/lib/CPAN/Meta/History/Meta_1_2.pod | 712 + .../tlperl/lib/CPAN/Meta/History/Meta_1_3.pod | 741 + .../tlperl/lib/CPAN/Meta/History/Meta_1_4.pod | 765 + .../tlnet/tlpkg/tlperl/lib/CPAN/Meta/Merge.pm | 351 + .../tlnet/tlpkg/tlperl/lib/CPAN/Meta/Prereqs.pm | 481 + .../tlpkg/tlperl/lib/CPAN/Meta/Requirements.pm | 1194 + .../tlnet/tlpkg/tlperl/lib/CPAN/Meta/Spec.pm | 1244 + .../tlnet/tlpkg/tlperl/lib/CPAN/Meta/Validator.pm | 1214 + .../tlnet/tlpkg/tlperl/lib/CPAN/Meta/YAML.pm | 951 + .../texlive/tlnet/tlpkg/tlperl/lib/CPAN/Mirrors.pm | 589 + .../texlive/tlnet/tlpkg/tlperl/lib/CPAN/Module.pm | 702 + systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Nox.pm | 52 + .../texlive/tlnet/tlpkg/tlperl/lib/CPAN/Plugin.pm | 145 + .../tlnet/tlpkg/tlperl/lib/CPAN/Plugin/Specfile.pm | 258 + .../texlive/tlnet/tlpkg/tlperl/lib/CPAN/Prompt.pm | 29 + .../texlive/tlnet/tlpkg/tlperl/lib/CPAN/Queue.pm | 223 + .../texlive/tlnet/tlpkg/tlperl/lib/CPAN/Shell.pm | 2071 + .../texlive/tlnet/tlpkg/tlperl/lib/CPAN/Tarzip.pm | 474 + systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/URL.pm | 31 + .../texlive/tlnet/tlpkg/tlperl/lib/CPAN/Version.pm | 177 + systems/texlive/tlnet/tlpkg/tlperl/lib/Carp.pm | 1072 + .../texlive/tlnet/tlpkg/tlperl/lib/Carp/Heavy.pm | 21 + .../texlive/tlnet/tlpkg/tlperl/lib/Class/Struct.pm | 637 + .../tlnet/tlpkg/tlperl/lib/Compress/Raw/Bzip2.pm | 385 + .../tlnet/tlpkg/tlperl/lib/Compress/Raw/Zlib.pm | 1597 + .../tlnet/tlpkg/tlperl/lib/Compress/Zlib.pm | 1507 + systems/texlive/tlnet/tlpkg/tlperl/lib/Config.pm | 116 + .../texlive/tlnet/tlpkg/tlperl/lib/Config.pm.orig | 111 + systems/texlive/tlnet/tlpkg/tlperl/lib/Config.pod | 9823 + .../tlnet/tlpkg/tlperl/lib/Config/Extensions.pm | 63 + .../tlnet/tlpkg/tlperl/lib/Config/Perl/V.pm | 562 + .../texlive/tlnet/tlpkg/tlperl/lib/Config_git.pl | 12 + .../texlive/tlnet/tlpkg/tlperl/lib/Config_heavy.pl | 1468 + .../tlnet/tlpkg/tlperl/lib/Config_heavy.pl.orig | 1463 + systems/texlive/tlnet/tlpkg/tlperl/lib/Cwd.pm | 840 + systems/texlive/tlnet/tlpkg/tlperl/lib/DB.pm | 802 + .../texlive/tlnet/tlpkg/tlperl/lib/DBM_Filter.pm | 601 + .../tlnet/tlpkg/tlperl/lib/DBM_Filter/compress.pm | 53 + .../tlnet/tlpkg/tlperl/lib/DBM_Filter/encode.pm | 86 + .../tlnet/tlpkg/tlperl/lib/DBM_Filter/int32.pm | 50 + .../tlnet/tlpkg/tlperl/lib/DBM_Filter/null.pm | 52 + .../tlnet/tlpkg/tlperl/lib/DBM_Filter/utf8.pm | 51 + .../texlive/tlnet/tlpkg/tlperl/lib/Data/Dumper.pm | 1483 + .../texlive/tlnet/tlpkg/tlperl/lib/Devel/PPPort.pm | 9924 + .../texlive/tlnet/tlpkg/tlperl/lib/Devel/Peek.pm | 589 + .../tlnet/tlpkg/tlperl/lib/Devel/SelfStubber.pm | 152 + systems/texlive/tlnet/tlpkg/tlperl/lib/Digest.pm | 323 + .../texlive/tlnet/tlpkg/tlperl/lib/Digest/MD5.pm | 385 + .../texlive/tlnet/tlpkg/tlperl/lib/Digest/SHA.pm | 818 + .../texlive/tlnet/tlpkg/tlperl/lib/Digest/base.pm | 100 + .../texlive/tlnet/tlpkg/tlperl/lib/Digest/file.pm | 85 + .../texlive/tlnet/tlpkg/tlperl/lib/DirHandle.pm | 89 + .../texlive/tlnet/tlpkg/tlperl/lib/Dumpvalue.pm | 672 + .../texlive/tlnet/tlpkg/tlperl/lib/DynaLoader.pm | 758 + systems/texlive/tlnet/tlpkg/tlperl/lib/Encode.pm | 1093 + .../texlive/tlnet/tlpkg/tlperl/lib/Encode/Alias.pm | 395 + .../texlive/tlnet/tlpkg/tlperl/lib/Encode/Byte.pm | 120 + .../tlnet/tlpkg/tlperl/lib/Encode/CJKConstants.pm | 66 + .../texlive/tlnet/tlpkg/tlperl/lib/Encode/CN.pm | 74 + .../texlive/tlnet/tlpkg/tlperl/lib/Encode/CN/HZ.pm | 201 + .../tlnet/tlpkg/tlperl/lib/Encode/Changes.e2x | 7 + .../tlnet/tlpkg/tlperl/lib/Encode/Config.pm | 170 + .../tlpkg/tlperl/lib/Encode/ConfigLocal_PM.e2x | 13 + .../tlnet/tlpkg/tlperl/lib/Encode/EBCDIC.pm | 45 + .../tlnet/tlpkg/tlperl/lib/Encode/Encoder.pm | 253 + .../tlnet/tlpkg/tlperl/lib/Encode/Encoding.pm | 356 + .../tlnet/tlpkg/tlperl/lib/Encode/GSM0338.pm | 294 + .../texlive/tlnet/tlpkg/tlperl/lib/Encode/Guess.pm | 356 + .../texlive/tlnet/tlpkg/tlperl/lib/Encode/JP.pm | 95 + .../tlnet/tlpkg/tlperl/lib/Encode/JP/H2Z.pm | 176 + .../tlnet/tlpkg/tlperl/lib/Encode/JP/JIS7.pm | 168 + .../texlive/tlnet/tlpkg/tlperl/lib/Encode/KR.pm | 69 + .../tlnet/tlpkg/tlperl/lib/Encode/KR/2022_KR.pm | 83 + .../tlnet/tlpkg/tlperl/lib/Encode/MIME/Header.pm | 427 + .../tlperl/lib/Encode/MIME/Header/ISO_2022_JP.pm | 133 + .../tlnet/tlpkg/tlperl/lib/Encode/MIME/Name.pm | 103 + .../tlnet/tlpkg/tlperl/lib/Encode/Makefile_PL.e2x | 190 + .../tlnet/tlpkg/tlperl/lib/Encode/PerlIO.pod | 167 + .../tlnet/tlpkg/tlperl/lib/Encode/README.e2x | 31 + .../tlnet/tlpkg/tlperl/lib/Encode/Supported.pod | 901 + .../tlnet/tlpkg/tlperl/lib/Encode/Symbol.pm | 44 + .../texlive/tlnet/tlpkg/tlperl/lib/Encode/TW.pm | 75 + .../tlnet/tlpkg/tlperl/lib/Encode/Unicode.pm | 272 + .../tlnet/tlpkg/tlperl/lib/Encode/Unicode/UTF7.pm | 133 + .../texlive/tlnet/tlpkg/tlperl/lib/Encode/_PM.e2x | 23 + .../texlive/tlnet/tlpkg/tlperl/lib/Encode/_T.e2x | 9 + .../texlive/tlnet/tlpkg/tlperl/lib/Encode/encode.h | 115 + systems/texlive/tlnet/tlpkg/tlperl/lib/English.pm | 237 + systems/texlive/tlnet/tlpkg/tlperl/lib/Env.pm | 254 + systems/texlive/tlnet/tlpkg/tlperl/lib/Errno.pm | 2629 + systems/texlive/tlnet/tlpkg/tlperl/lib/Exporter.pm | 591 + .../tlnet/tlpkg/tlperl/lib/Exporter/Heavy.pm | 253 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder.pm | 298 + .../tlpkg/tlperl/lib/ExtUtils/CBuilder/Base.pm | 405 + .../tlperl/lib/ExtUtils/CBuilder/Platform/Unix.pm | 40 + .../tlperl/lib/ExtUtils/CBuilder/Platform/VMS.pm | 290 + .../lib/ExtUtils/CBuilder/Platform/Windows.pm | 289 + .../lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm | 132 + .../lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm | 153 + .../lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm | 134 + .../tlperl/lib/ExtUtils/CBuilder/Platform/aix.pm | 31 + .../lib/ExtUtils/CBuilder/Platform/android.pm | 39 + .../lib/ExtUtils/CBuilder/Platform/cygwin.pm | 33 + .../lib/ExtUtils/CBuilder/Platform/darwin.pm | 22 + .../lib/ExtUtils/CBuilder/Platform/dec_osf.pm | 18 + .../tlperl/lib/ExtUtils/CBuilder/Platform/os2.pm | 74 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/Command.pm | 381 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/Command/MM.pm | 323 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/Constant.pm | 567 + .../tlpkg/tlperl/lib/ExtUtils/Constant/Base.pm | 1019 + .../tlperl/lib/ExtUtils/Constant/ProxySubs.pm | 682 + .../tlpkg/tlperl/lib/ExtUtils/Constant/Utils.pm | 135 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/Constant/XS.pm | 259 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/Embed.pm | 491 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/Install.pm | 1375 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/Installed.pm | 471 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/Liblist.pm | 287 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/Liblist/Kid.pm | 651 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/MANIFEST.SKIP | 63 + .../texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM.pm | 91 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/MM_AIX.pm | 77 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Any.pm | 3099 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/MM_BeOS.pm | 63 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Cygwin.pm | 175 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/MM_DOS.pm | 74 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Darwin.pm | 48 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/MM_MacOS.pm | 34 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/MM_NW5.pm | 208 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm | 146 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/MM_QNX.pm | 58 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/MM_UWIN.pm | 65 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Unix.pm | 4020 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/MM_VMS.pm | 2280 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/MM_VOS.pm | 51 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Win32.pm | 646 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Win95.pm | 76 + .../texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MY.pm | 41 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker.pm | 3412 + .../tlpkg/tlperl/lib/ExtUtils/MakeMaker/Config.pm | 40 + .../tlpkg/tlperl/lib/ExtUtils/MakeMaker/FAQ.pod | 666 + .../tlpkg/tlperl/lib/ExtUtils/MakeMaker/Locale.pm | 373 + .../tlperl/lib/ExtUtils/MakeMaker/Tutorial.pod | 212 + .../tlpkg/tlperl/lib/ExtUtils/MakeMaker/version.pm | 56 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/Manifest.pm | 911 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/Miniperl.pm | 259 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/Mkbootstrap.pm | 112 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/Mksymlists.pm | 318 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/Packlist.pm | 353 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS.pm | 2151 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS.pod | 177 + .../tlpkg/tlperl/lib/ExtUtils/ParseXS/Constants.pm | 44 + .../tlperl/lib/ExtUtils/ParseXS/CountLines.pm | 54 + .../tlpkg/tlperl/lib/ExtUtils/ParseXS/Eval.pm | 97 + .../tlpkg/tlperl/lib/ExtUtils/ParseXS/Utilities.pm | 821 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps.pm | 1093 + .../tlpkg/tlperl/lib/ExtUtils/Typemaps/Cmd.pm | 168 + .../tlpkg/tlperl/lib/ExtUtils/Typemaps/InputMap.pm | 116 + .../tlperl/lib/ExtUtils/Typemaps/OutputMap.pm | 209 + .../tlpkg/tlperl/lib/ExtUtils/Typemaps/Type.pm | 121 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/testlib.pm | 42 + .../tlnet/tlpkg/tlperl/lib/ExtUtils/typemap | 451 + .../texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/xsubpp | 185 + systems/texlive/tlnet/tlpkg/tlperl/lib/Fatal.pm | 1813 + systems/texlive/tlnet/tlpkg/tlperl/lib/Fcntl.pm | 193 + .../tlnet/tlpkg/tlperl/lib/File/Basename.pm | 402 + .../texlive/tlnet/tlpkg/tlperl/lib/File/Compare.pm | 182 + .../texlive/tlnet/tlpkg/tlperl/lib/File/Copy.pm | 513 + .../texlive/tlnet/tlpkg/tlperl/lib/File/DosGlob.pm | 304 + .../texlive/tlnet/tlpkg/tlperl/lib/File/Fetch.pm | 1731 + .../texlive/tlnet/tlpkg/tlperl/lib/File/Find.pm | 1149 + .../texlive/tlnet/tlpkg/tlperl/lib/File/Glob.pm | 422 + .../tlnet/tlpkg/tlperl/lib/File/GlobMapper.pm | 679 + .../texlive/tlnet/tlpkg/tlperl/lib/File/Path.pm | 1287 + .../texlive/tlnet/tlpkg/tlperl/lib/File/Spec.pm | 341 + .../tlnet/tlpkg/tlperl/lib/File/Spec/AmigaOS.pm | 61 + .../tlnet/tlpkg/tlperl/lib/File/Spec/Cygwin.pm | 163 + .../tlnet/tlpkg/tlperl/lib/File/Spec/Epoc.pm | 78 + .../tlnet/tlpkg/tlperl/lib/File/Spec/Functions.pm | 128 + .../tlnet/tlpkg/tlperl/lib/File/Spec/Mac.pm | 765 + .../tlnet/tlpkg/tlperl/lib/File/Spec/OS2.pm | 271 + .../tlnet/tlpkg/tlperl/lib/File/Spec/Unix.pm | 575 + .../tlnet/tlpkg/tlperl/lib/File/Spec/VMS.pm | 569 + .../tlnet/tlpkg/tlperl/lib/File/Spec/Win32.pm | 449 + .../texlive/tlnet/tlpkg/tlperl/lib/File/Temp.pm | 2594 + .../texlive/tlnet/tlpkg/tlperl/lib/File/stat.pm | 362 + .../texlive/tlnet/tlpkg/tlperl/lib/FileCache.pm | 188 + .../texlive/tlnet/tlpkg/tlperl/lib/FileHandle.pm | 262 + .../tlnet/tlpkg/tlperl/lib/Filter/Simple.pm | 804 + .../tlnet/tlpkg/tlperl/lib/Filter/Util/Call.pm | 538 + systems/texlive/tlnet/tlpkg/tlperl/lib/FindBin.pm | 170 + .../texlive/tlnet/tlpkg/tlperl/lib/Getopt/Long.pm | 2767 + .../texlive/tlnet/tlpkg/tlperl/lib/Getopt/Std.pm | 304 + .../texlive/tlnet/tlpkg/tlperl/lib/HTTP/Tiny.pm | 2425 + .../texlive/tlnet/tlpkg/tlperl/lib/Hash/Util.pm | 844 + .../tlnet/tlpkg/tlperl/lib/Hash/Util/FieldHash.pm | 861 + .../texlive/tlnet/tlpkg/tlperl/lib/I18N/Collate.pm | 196 + .../tlnet/tlpkg/tlperl/lib/I18N/LangTags.pm | 887 + .../tlnet/tlpkg/tlperl/lib/I18N/LangTags/Detect.pm | 240 + .../tlnet/tlpkg/tlperl/lib/I18N/LangTags/List.pm | 1779 + .../tlnet/tlpkg/tlperl/lib/I18N/Langinfo.pm | 289 + systems/texlive/tlnet/tlpkg/tlperl/lib/IO.pm | 70 + .../tlpkg/tlperl/lib/IO/Compress/Adapter/Bzip2.pm | 154 + .../tlperl/lib/IO/Compress/Adapter/Deflate.pm | 170 + .../tlperl/lib/IO/Compress/Adapter/Identity.pm | 101 + .../tlnet/tlpkg/tlperl/lib/IO/Compress/Base.pm | 1048 + .../tlpkg/tlperl/lib/IO/Compress/Base/Common.pm | 1045 + .../tlnet/tlpkg/tlperl/lib/IO/Compress/Bzip2.pm | 805 + .../tlnet/tlpkg/tlperl/lib/IO/Compress/Deflate.pm | 939 + .../tlnet/tlpkg/tlperl/lib/IO/Compress/FAQ.pod | 683 + .../tlnet/tlpkg/tlperl/lib/IO/Compress/Gzip.pm | 1251 + .../tlpkg/tlperl/lib/IO/Compress/Gzip/Constants.pm | 148 + .../tlpkg/tlperl/lib/IO/Compress/RawDeflate.pm | 995 + .../tlnet/tlpkg/tlperl/lib/IO/Compress/Zip.pm | 1965 + .../tlpkg/tlperl/lib/IO/Compress/Zip/Constants.pm | 125 + .../tlpkg/tlperl/lib/IO/Compress/Zlib/Constants.pm | 77 + .../tlpkg/tlperl/lib/IO/Compress/Zlib/Extra.pm | 229 + systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Dir.pm | 247 + systems/texlive/tlnet/tlpkg/tlperl/lib/IO/File.pm | 202 + .../texlive/tlnet/tlpkg/tlperl/lib/IO/Handle.pm | 651 + systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Pipe.pm | 256 + systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Poll.pm | 208 + .../texlive/tlnet/tlpkg/tlperl/lib/IO/Seekable.pm | 126 + .../texlive/tlnet/tlpkg/tlperl/lib/IO/Select.pm | 403 + .../texlive/tlnet/tlpkg/tlperl/lib/IO/Socket.pm | 585 + .../tlnet/tlpkg/tlperl/lib/IO/Socket/INET.pm | 466 + .../texlive/tlnet/tlpkg/tlperl/lib/IO/Socket/IP.pm | 1249 + .../tlnet/tlpkg/tlperl/lib/IO/Socket/UNIX.pm | 157 + .../tlperl/lib/IO/Uncompress/Adapter/Bunzip2.pm | 112 + .../tlperl/lib/IO/Uncompress/Adapter/Identity.pm | 188 + .../tlperl/lib/IO/Uncompress/Adapter/Inflate.pm | 158 + .../tlpkg/tlperl/lib/IO/Uncompress/AnyInflate.pm | 1002 + .../tlperl/lib/IO/Uncompress/AnyUncompress.pm | 1034 + .../tlnet/tlpkg/tlperl/lib/IO/Uncompress/Base.pm | 1556 + .../tlpkg/tlperl/lib/IO/Uncompress/Bunzip2.pm | 910 + .../tlnet/tlpkg/tlperl/lib/IO/Uncompress/Gunzip.pm | 1125 + .../tlpkg/tlperl/lib/IO/Uncompress/Inflate.pm | 997 + .../tlpkg/tlperl/lib/IO/Uncompress/RawInflate.pm | 1125 + .../tlnet/tlpkg/tlperl/lib/IO/Uncompress/Unzip.pm | 1868 + systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Zlib.pm | 652 + systems/texlive/tlnet/tlpkg/tlperl/lib/IPC/Cmd.pm | 2180 + .../texlive/tlnet/tlpkg/tlperl/lib/IPC/Open2.pm | 120 + .../texlive/tlnet/tlpkg/tlperl/lib/IPC/Open3.pm | 433 + .../texlive/tlnet/tlpkg/tlperl/lib/Internals.pod | 78 + systems/texlive/tlnet/tlpkg/tlperl/lib/JSON/PP.pm | 2853 + .../tlnet/tlpkg/tlperl/lib/JSON/PP/Boolean.pm | 35 + .../texlive/tlnet/tlpkg/tlperl/lib/List/Util.pm | 670 + .../texlive/tlnet/tlpkg/tlperl/lib/List/Util/XS.pm | 42 + .../texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes.pm | 880 + .../tlnet/tlpkg/tlperl/lib/Locale/Codes.pod | 600 + .../tlpkg/tlperl/lib/Locale/Codes/Changes.pod | 962 + .../tlpkg/tlperl/lib/Locale/Codes/Constants.pm | 205 + .../tlnet/tlpkg/tlperl/lib/Locale/Codes/Country.pm | 94 + .../tlpkg/tlperl/lib/Locale/Codes/Country.pod | 132 + .../tlpkg/tlperl/lib/Locale/Codes/Country_Codes.pm | 14764 + .../tlperl/lib/Locale/Codes/Country_Retired.pm | 629 + .../tlpkg/tlperl/lib/Locale/Codes/Currency.pm | 94 + .../tlpkg/tlperl/lib/Locale/Codes/Currency.pod | 132 + .../tlperl/lib/Locale/Codes/Currency_Codes.pm | 3030 + .../tlperl/lib/Locale/Codes/Currency_Retired.pm | 192 + .../tlnet/tlpkg/tlperl/lib/Locale/Codes/LangExt.pm | 94 + .../tlpkg/tlperl/lib/Locale/Codes/LangExt.pod | 132 + .../tlpkg/tlperl/lib/Locale/Codes/LangExt_Codes.pm | 2898 + .../tlperl/lib/Locale/Codes/LangExt_Retired.pm | 28 + .../tlnet/tlpkg/tlperl/lib/Locale/Codes/LangFam.pm | 94 + .../tlpkg/tlperl/lib/Locale/Codes/LangFam.pod | 132 + .../tlpkg/tlperl/lib/Locale/Codes/LangFam_Codes.pm | 1414 + .../tlperl/lib/Locale/Codes/LangFam_Retired.pm | 22 + .../tlnet/tlpkg/tlperl/lib/Locale/Codes/LangVar.pm | 94 + .../tlpkg/tlperl/lib/Locale/Codes/LangVar.pod | 132 + .../tlpkg/tlperl/lib/Locale/Codes/LangVar_Codes.pm | 1174 + .../tlperl/lib/Locale/Codes/LangVar_Retired.pm | 26 + .../tlpkg/tlperl/lib/Locale/Codes/Language.pm | 94 + .../tlpkg/tlperl/lib/Locale/Codes/Language.pod | 132 + .../tlperl/lib/Locale/Codes/Language_Codes.pm | 100760 +++++ .../tlperl/lib/Locale/Codes/Language_Retired.pm | 509 + .../tlnet/tlpkg/tlperl/lib/Locale/Codes/Script.pm | 94 + .../tlnet/tlpkg/tlperl/lib/Locale/Codes/Script.pod | 132 + .../tlpkg/tlperl/lib/Locale/Codes/Script_Codes.pm | 3806 + .../tlperl/lib/Locale/Codes/Script_Retired.pm | 75 + .../tlnet/tlpkg/tlperl/lib/Locale/Codes/Types.pod | 414 + .../tlnet/tlpkg/tlperl/lib/Locale/Country.pm | 94 + .../tlnet/tlpkg/tlperl/lib/Locale/Country.pod | 132 + .../tlnet/tlpkg/tlperl/lib/Locale/Currency.pm | 94 + .../tlnet/tlpkg/tlperl/lib/Locale/Currency.pod | 132 + .../tlnet/tlpkg/tlperl/lib/Locale/Language.pm | 94 + .../tlnet/tlpkg/tlperl/lib/Locale/Language.pod | 132 + .../tlnet/tlpkg/tlperl/lib/Locale/Maketext.pm | 859 + .../tlnet/tlpkg/tlperl/lib/Locale/Maketext.pod | 1424 + .../tlpkg/tlperl/lib/Locale/Maketext/Cookbook.pod | 150 + .../tlnet/tlpkg/tlperl/lib/Locale/Maketext/Guts.pm | 24 + .../tlpkg/tlperl/lib/Locale/Maketext/GutsLoader.pm | 26 + .../tlpkg/tlperl/lib/Locale/Maketext/Simple.pm | 346 + .../tlpkg/tlperl/lib/Locale/Maketext/TPJ13.pod | 775 + .../tlnet/tlpkg/tlperl/lib/Locale/Script.pm | 94 + .../tlnet/tlpkg/tlperl/lib/Locale/Script.pod | 132 + .../texlive/tlnet/tlpkg/tlperl/lib/MIME/Base64.pm | 188 + .../tlnet/tlpkg/tlperl/lib/MIME/QuotedPrint.pm | 114 + .../tlnet/tlpkg/tlperl/lib/Math/BigFloat.pm | 5545 + .../tlnet/tlpkg/tlperl/lib/Math/BigFloat/Trace.pm | 58 + .../texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt.pm | 6653 + .../tlnet/tlpkg/tlperl/lib/Math/BigInt/Calc.pm | 2530 + .../tlnet/tlpkg/tlperl/lib/Math/BigInt/CalcEmu.pm | 394 + .../tlnet/tlpkg/tlperl/lib/Math/BigInt/FastCalc.pm | 168 + .../tlnet/tlpkg/tlperl/lib/Math/BigInt/Lib.pm | 2070 + .../tlnet/tlpkg/tlperl/lib/Math/BigInt/Trace.pm | 48 + .../texlive/tlnet/tlpkg/tlperl/lib/Math/BigRat.pm | 2771 + .../texlive/tlnet/tlpkg/tlperl/lib/Math/Complex.pm | 2132 + .../texlive/tlnet/tlpkg/tlperl/lib/Math/Trig.pm | 761 + systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize.pm | 1077 + .../tlnet/tlpkg/tlperl/lib/Memoize/AnyDBM_File.pm | 31 + .../tlnet/tlpkg/tlperl/lib/Memoize/Expire.pm | 370 + .../tlnet/tlpkg/tlperl/lib/Memoize/ExpireFile.pm | 52 + .../tlnet/tlpkg/tlperl/lib/Memoize/ExpireTest.pm | 49 + .../tlnet/tlpkg/tlperl/lib/Memoize/NDBM_File.pm | 77 + .../tlnet/tlpkg/tlperl/lib/Memoize/SDBM_File.pm | 75 + .../tlnet/tlpkg/tlperl/lib/Memoize/Storable.pm | 72 + .../tlnet/tlpkg/tlperl/lib/Module/CoreList.pm | 17710 + .../tlnet/tlpkg/tlperl/lib/Module/CoreList.pod | 256 + .../tlpkg/tlperl/lib/Module/CoreList/Utils.pm | 1574 + .../texlive/tlnet/tlpkg/tlperl/lib/Module/Load.pm | 354 + .../tlpkg/tlperl/lib/Module/Load/Conditional.pm | 617 + .../tlnet/tlpkg/tlperl/lib/Module/Loaded.pm | 142 + .../tlnet/tlpkg/tlperl/lib/Module/Metadata.pm | 1180 + systems/texlive/tlnet/tlpkg/tlperl/lib/NEXT.pm | 579 + systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Cmd.pm | 873 + .../texlive/tlnet/tlpkg/tlperl/lib/Net/Config.pm | 345 + .../texlive/tlnet/tlpkg/tlperl/lib/Net/Domain.pm | 365 + systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP.pm | 2049 + .../texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/A.pm | 115 + .../texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/E.pm | 13 + .../texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/I.pm | 84 + .../texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/L.pm | 13 + .../tlnet/tlpkg/tlperl/lib/Net/FTP/dataconn.pm | 182 + systems/texlive/tlnet/tlpkg/tlperl/lib/Net/NNTP.pm | 1302 + .../texlive/tlnet/tlpkg/tlperl/lib/Net/Netrc.pm | 347 + systems/texlive/tlnet/tlpkg/tlperl/lib/Net/POP3.pm | 863 + systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Ping.pm | 2475 + systems/texlive/tlnet/tlpkg/tlperl/lib/Net/SMTP.pm | 1046 + systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Time.pm | 164 + .../texlive/tlnet/tlpkg/tlperl/lib/Net/hostent.pm | 156 + .../tlnet/tlpkg/tlperl/lib/Net/libnetFAQ.pod | 301 + .../texlive/tlnet/tlpkg/tlperl/lib/Net/netent.pm | 173 + .../texlive/tlnet/tlpkg/tlperl/lib/Net/protoent.pm | 96 + .../texlive/tlnet/tlpkg/tlperl/lib/Net/servent.pm | 113 + systems/texlive/tlnet/tlpkg/tlperl/lib/O.pm | 145 + systems/texlive/tlnet/tlpkg/tlperl/lib/Opcode.pm | 603 + systems/texlive/tlnet/tlpkg/tlperl/lib/POSIX.pm | 564 + systems/texlive/tlnet/tlpkg/tlperl/lib/POSIX.pod | 2763 + .../texlive/tlnet/tlpkg/tlperl/lib/Params/Check.pm | 695 + .../tlnet/tlpkg/tlperl/lib/Parse/CPAN/Meta.pm | 370 + .../texlive/tlnet/tlpkg/tlperl/lib/Perl/OSType.pm | 225 + systems/texlive/tlnet/tlpkg/tlperl/lib/PerlIO.pm | 331 + .../tlnet/tlpkg/tlperl/lib/PerlIO/encoding.pm | 53 + .../texlive/tlnet/tlpkg/tlperl/lib/PerlIO/mmap.pm | 30 + .../tlnet/tlpkg/tlperl/lib/PerlIO/scalar.pm | 41 + .../texlive/tlnet/tlpkg/tlperl/lib/PerlIO/via.pm | 243 + .../tlpkg/tlperl/lib/PerlIO/via/QuotedPrint.pm | 102 + .../texlive/tlnet/tlpkg/tlperl/lib/Pod/Checker.pm | 1090 + .../texlive/tlnet/tlpkg/tlperl/lib/Pod/Escapes.pm | 732 + systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Find.pm | 553 + .../tlnet/tlpkg/tlperl/lib/Pod/Functions.pm | 351 + systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Html.pm | 838 + .../tlnet/tlpkg/tlperl/lib/Pod/InputObjects.pm | 946 + systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Man.pm | 2050 + .../tlnet/tlpkg/tlperl/lib/Pod/ParseLink.pm | 194 + .../tlnet/tlpkg/tlperl/lib/Pod/ParseUtils.pm | 861 + .../texlive/tlnet/tlpkg/tlperl/lib/Pod/Parser.pm | 1836 + .../texlive/tlnet/tlpkg/tlperl/lib/Pod/Perldoc.pm | 2140 + .../tlnet/tlpkg/tlperl/lib/Pod/Perldoc/BaseTo.pm | 154 + .../tlpkg/tlperl/lib/Pod/Perldoc/GetOptsOO.pm | 161 + .../tlnet/tlpkg/tlperl/lib/Pod/Perldoc/ToANSI.pm | 96 + .../tlpkg/tlperl/lib/Pod/Perldoc/ToChecker.pm | 78 + .../tlnet/tlpkg/tlperl/lib/Pod/Perldoc/ToMan.pm | 561 + .../tlnet/tlpkg/tlperl/lib/Pod/Perldoc/ToNroff.pm | 105 + .../tlnet/tlpkg/tlperl/lib/Pod/Perldoc/ToPod.pm | 88 + .../tlnet/tlpkg/tlperl/lib/Pod/Perldoc/ToRtf.pm | 83 + .../tlnet/tlpkg/tlperl/lib/Pod/Perldoc/ToTerm.pm | 169 + .../tlnet/tlpkg/tlperl/lib/Pod/Perldoc/ToText.pm | 98 + .../tlnet/tlpkg/tlperl/lib/Pod/Perldoc/ToTk.pm | 154 + .../tlnet/tlpkg/tlperl/lib/Pod/Perldoc/ToXml.pm | 63 + .../tlnet/tlpkg/tlperl/lib/Pod/PlainText.pm | 748 + .../texlive/tlnet/tlpkg/tlperl/lib/Pod/Select.pm | 756 + .../texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple.pm | 1627 + .../texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple.pod | 434 + .../tlnet/tlpkg/tlperl/lib/Pod/Simple/BlackBox.pm | 2128 + .../tlnet/tlpkg/tlperl/lib/Pod/Simple/Checker.pm | 194 + .../tlnet/tlpkg/tlperl/lib/Pod/Simple/Debug.pm | 177 + .../tlpkg/tlperl/lib/Pod/Simple/DumpAsText.pm | 156 + .../tlnet/tlpkg/tlperl/lib/Pod/Simple/DumpAsXML.pm | 167 + .../tlnet/tlpkg/tlperl/lib/Pod/Simple/HTML.pm | 1157 + .../tlnet/tlpkg/tlperl/lib/Pod/Simple/HTMLBatch.pm | 1358 + .../tlpkg/tlperl/lib/Pod/Simple/HTMLLegacy.pm | 104 + .../tlpkg/tlperl/lib/Pod/Simple/LinkSection.pm | 174 + .../tlnet/tlpkg/tlperl/lib/Pod/Simple/Methody.pm | 152 + .../tlnet/tlpkg/tlperl/lib/Pod/Simple/Progress.pm | 93 + .../tlpkg/tlperl/lib/Pod/Simple/PullParser.pm | 852 + .../tlperl/lib/Pod/Simple/PullParserEndToken.pm | 120 + .../tlperl/lib/Pod/Simple/PullParserStartToken.pm | 161 + .../tlperl/lib/Pod/Simple/PullParserTextToken.pm | 134 + .../tlpkg/tlperl/lib/Pod/Simple/PullParserToken.pm | 163 + .../tlnet/tlpkg/tlperl/lib/Pod/Simple/RTF.pm | 714 + .../tlnet/tlpkg/tlperl/lib/Pod/Simple/Search.pm | 1079 + .../tlpkg/tlperl/lib/Pod/Simple/SimpleTree.pm | 179 + .../tlpkg/tlperl/lib/Pod/Simple/Subclassing.pod | 1088 + .../tlnet/tlpkg/tlperl/lib/Pod/Simple/Text.pm | 184 + .../tlpkg/tlperl/lib/Pod/Simple/TextContent.pm | 110 + .../tlnet/tlpkg/tlperl/lib/Pod/Simple/TiedOutFH.pm | 105 + .../tlnet/tlpkg/tlperl/lib/Pod/Simple/Transcode.pm | 36 + .../tlpkg/tlperl/lib/Pod/Simple/TranscodeDumb.pm | 86 + .../tlpkg/tlperl/lib/Pod/Simple/TranscodeSmart.pm | 44 + .../tlnet/tlpkg/tlperl/lib/Pod/Simple/XHTML.pm | 879 + .../tlpkg/tlperl/lib/Pod/Simple/XMLOutStream.pm | 175 + systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text.pm | 1031 + .../tlnet/tlpkg/tlperl/lib/Pod/Text/Color.pm | 157 + .../tlnet/tlpkg/tlperl/lib/Pod/Text/Overstrike.pm | 209 + .../tlnet/tlpkg/tlperl/lib/Pod/Text/Termcap.pm | 210 + .../texlive/tlnet/tlpkg/tlperl/lib/Pod/Usage.pm | 895 + .../texlive/tlnet/tlpkg/tlperl/lib/SDBM_File.pm | 131 + systems/texlive/tlnet/tlpkg/tlperl/lib/Safe.pm | 818 + .../texlive/tlnet/tlpkg/tlperl/lib/Scalar/Util.pm | 360 + .../texlive/tlnet/tlpkg/tlperl/lib/Search/Dict.pm | 128 + .../texlive/tlnet/tlpkg/tlperl/lib/SelectSaver.pm | 54 + .../texlive/tlnet/tlpkg/tlperl/lib/SelfLoader.pm | 455 + systems/texlive/tlnet/tlpkg/tlperl/lib/Socket.pm | 1138 + systems/texlive/tlnet/tlpkg/tlperl/lib/Storable.pm | 1430 + .../tlnet/tlpkg/tlperl/lib/Storable/Limit.pm | 6 + systems/texlive/tlnet/tlpkg/tlperl/lib/Sub/Util.pm | 151 + systems/texlive/tlnet/tlpkg/tlperl/lib/Symbol.pm | 170 + .../texlive/tlnet/tlpkg/tlperl/lib/Sys/Hostname.pm | 156 + systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Base.pm | 133 + .../tlnet/tlpkg/tlperl/lib/TAP/Formatter/Base.pm | 467 + .../tlnet/tlpkg/tlperl/lib/TAP/Formatter/Color.pm | 116 + .../tlpkg/tlperl/lib/TAP/Formatter/Console.pm | 100 + .../lib/TAP/Formatter/Console/ParallelSession.pm | 201 + .../tlperl/lib/TAP/Formatter/Console/Session.pm | 205 + .../tlnet/tlpkg/tlperl/lib/TAP/Formatter/File.pm | 56 + .../tlpkg/tlperl/lib/TAP/Formatter/File/Session.pm | 95 + .../tlpkg/tlperl/lib/TAP/Formatter/Session.pm | 220 + .../texlive/tlnet/tlpkg/tlperl/lib/TAP/Harness.pm | 1054 + .../tlnet/tlpkg/tlperl/lib/TAP/Harness/Beyond.pod | 426 + .../tlnet/tlpkg/tlperl/lib/TAP/Harness/Env.pm | 215 + .../texlive/tlnet/tlpkg/tlperl/lib/TAP/Object.pm | 155 + .../texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser.pm | 1931 + .../tlpkg/tlperl/lib/TAP/Parser/Aggregator.pm | 414 + .../tlnet/tlpkg/tlperl/lib/TAP/Parser/Grammar.pm | 584 + .../tlnet/tlpkg/tlperl/lib/TAP/Parser/Iterator.pm | 162 + .../tlpkg/tlperl/lib/TAP/Parser/Iterator/Array.pm | 100 + .../tlperl/lib/TAP/Parser/Iterator/Process.pm | 378 + .../tlpkg/tlperl/lib/TAP/Parser/Iterator/Stream.pm | 116 + .../tlpkg/tlperl/lib/TAP/Parser/IteratorFactory.pm | 339 + .../tlpkg/tlperl/lib/TAP/Parser/Multiplexer.pm | 194 + .../tlnet/tlpkg/tlperl/lib/TAP/Parser/Result.pm | 297 + .../tlpkg/tlperl/lib/TAP/Parser/Result/Bailout.pm | 62 + .../tlpkg/tlperl/lib/TAP/Parser/Result/Comment.pm | 60 + .../tlpkg/tlperl/lib/TAP/Parser/Result/Plan.pm | 119 + .../tlpkg/tlperl/lib/TAP/Parser/Result/Pragma.pm | 62 + .../tlpkg/tlperl/lib/TAP/Parser/Result/Test.pm | 271 + .../tlpkg/tlperl/lib/TAP/Parser/Result/Unknown.pm | 48 + .../tlpkg/tlperl/lib/TAP/Parser/Result/Version.pm | 62 + .../tlpkg/tlperl/lib/TAP/Parser/Result/YAML.pm | 61 + .../tlpkg/tlperl/lib/TAP/Parser/ResultFactory.pm | 183 + .../tlnet/tlpkg/tlperl/lib/TAP/Parser/Scheduler.pm | 448 + .../tlpkg/tlperl/lib/TAP/Parser/Scheduler/Job.pm | 127 + .../tlperl/lib/TAP/Parser/Scheduler/Spinner.pm | 61 + .../tlnet/tlpkg/tlperl/lib/TAP/Parser/Source.pm | 381 + .../tlpkg/tlperl/lib/TAP/Parser/SourceHandler.pm | 191 + .../lib/TAP/Parser/SourceHandler/Executable.pm | 184 + .../tlperl/lib/TAP/Parser/SourceHandler/File.pm | 136 + .../tlperl/lib/TAP/Parser/SourceHandler/Handle.pm | 124 + .../tlperl/lib/TAP/Parser/SourceHandler/Perl.pm | 370 + .../tlperl/lib/TAP/Parser/SourceHandler/RawTAP.pm | 130 + .../tlpkg/tlperl/lib/TAP/Parser/YAMLish/Reader.pm | 332 + .../tlpkg/tlperl/lib/TAP/Parser/YAMLish/Writer.pm | 254 + .../tlnet/tlpkg/tlperl/lib/Term/ANSIColor.pm | 1272 + systems/texlive/tlnet/tlpkg/tlperl/lib/Term/Cap.pm | 772 + .../tlnet/tlpkg/tlperl/lib/Term/Complete.pm | 188 + .../tlnet/tlpkg/tlperl/lib/Term/ReadLine.pm | 487 + systems/texlive/tlnet/tlpkg/tlperl/lib/Test.pm | 985 + .../texlive/tlnet/tlpkg/tlperl/lib/Test/Builder.pm | 2604 + .../tlpkg/tlperl/lib/Test/Builder/Formatter.pm | 105 + .../tlpkg/tlperl/lib/Test/Builder/IO/Scalar.pm | 659 + .../tlnet/tlpkg/tlperl/lib/Test/Builder/Module.pm | 175 + .../tlnet/tlpkg/tlperl/lib/Test/Builder/Tester.pm | 675 + .../tlpkg/tlperl/lib/Test/Builder/Tester/Color.pm | 51 + .../tlpkg/tlperl/lib/Test/Builder/TodoDiag.pm | 68 + .../texlive/tlnet/tlpkg/tlperl/lib/Test/Harness.pm | 618 + .../texlive/tlnet/tlpkg/tlperl/lib/Test/More.pm | 2002 + .../texlive/tlnet/tlpkg/tlperl/lib/Test/Simple.pm | 220 + .../texlive/tlnet/tlpkg/tlperl/lib/Test/Tester.pm | 695 + .../tlnet/tlpkg/tlperl/lib/Test/Tester/Capture.pm | 247 + .../tlpkg/tlperl/lib/Test/Tester/CaptureRunner.pm | 79 + .../tlnet/tlpkg/tlperl/lib/Test/Tester/Delegate.pm | 45 + .../tlnet/tlpkg/tlperl/lib/Test/Tutorial.pod | 618 + .../texlive/tlnet/tlpkg/tlperl/lib/Test/use/ok.pm | 64 + systems/texlive/tlnet/tlpkg/tlperl/lib/Test2.pm | 213 + .../texlive/tlnet/tlpkg/tlperl/lib/Test2/API.pm | 1567 + .../tlnet/tlpkg/tlperl/lib/Test2/API/Breakage.pm | 178 + .../tlnet/tlpkg/tlperl/lib/Test2/API/Context.pm | 985 + .../tlnet/tlpkg/tlperl/lib/Test2/API/Instance.pm | 916 + .../tlnet/tlpkg/tlperl/lib/Test2/API/Stack.pm | 220 + .../texlive/tlnet/tlpkg/tlperl/lib/Test2/Event.pm | 774 + .../tlnet/tlpkg/tlperl/lib/Test2/Event/Bail.pm | 109 + .../tlnet/tlpkg/tlperl/lib/Test2/Event/Diag.pm | 99 + .../tlnet/tlpkg/tlperl/lib/Test2/Event/Encoding.pm | 97 + .../tlpkg/tlperl/lib/Test2/Event/Exception.pm | 113 + .../tlnet/tlpkg/tlperl/lib/Test2/Event/Fail.pm | 118 + .../tlnet/tlpkg/tlperl/lib/Test2/Event/Generic.pm | 280 + .../tlnet/tlpkg/tlperl/lib/Test2/Event/Note.pm | 97 + .../tlnet/tlpkg/tlperl/lib/Test2/Event/Ok.pm | 162 + .../tlnet/tlpkg/tlperl/lib/Test2/Event/Pass.pm | 114 + .../tlnet/tlpkg/tlperl/lib/Test2/Event/Plan.pm | 169 + .../tlnet/tlpkg/tlperl/lib/Test2/Event/Skip.pm | 127 + .../tlnet/tlpkg/tlperl/lib/Test2/Event/Subtest.pm | 160 + .../tlpkg/tlperl/lib/Test2/Event/TAP/Version.pm | 101 + .../tlnet/tlpkg/tlperl/lib/Test2/Event/V2.pm | 238 + .../tlnet/tlpkg/tlperl/lib/Test2/Event/Waiting.pm | 76 + .../tlnet/tlpkg/tlperl/lib/Test2/EventFacet.pm | 93 + .../tlpkg/tlperl/lib/Test2/EventFacet/About.pm | 86 + .../tlpkg/tlperl/lib/Test2/EventFacet/Amnesty.pm | 91 + .../tlpkg/tlperl/lib/Test2/EventFacet/Assert.pm | 93 + .../tlpkg/tlperl/lib/Test2/EventFacet/Control.pm | 100 + .../tlpkg/tlperl/lib/Test2/EventFacet/Error.pm | 93 + .../tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Hub.pm | 109 + .../tlpkg/tlperl/lib/Test2/EventFacet/Info.pm | 102 + .../tlpkg/tlperl/lib/Test2/EventFacet/Meta.pm | 104 + .../tlpkg/tlperl/lib/Test2/EventFacet/Parent.pm | 98 + .../tlpkg/tlperl/lib/Test2/EventFacet/Plan.pm | 94 + .../tlpkg/tlperl/lib/Test2/EventFacet/Render.pm | 106 + .../tlpkg/tlperl/lib/Test2/EventFacet/Trace.pm | 280 + .../tlnet/tlpkg/tlperl/lib/Test2/Formatter.pm | 145 + .../tlnet/tlpkg/tlperl/lib/Test2/Formatter/TAP.pm | 487 + .../texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub.pm | 908 + .../tlpkg/tlperl/lib/Test2/Hub/Interceptor.pm | 88 + .../tlperl/lib/Test2/Hub/Interceptor/Terminator.pm | 51 + .../tlnet/tlpkg/tlperl/lib/Test2/Hub/Subtest.pm | 136 + .../texlive/tlnet/tlpkg/tlperl/lib/Test2/IPC.pm | 149 + .../tlnet/tlpkg/tlperl/lib/Test2/IPC/Driver.pm | 302 + .../tlpkg/tlperl/lib/Test2/IPC/Driver/Files.pm | 483 + .../tlnet/tlpkg/tlperl/lib/Test2/Tools/Tiny.pm | 435 + .../tlnet/tlpkg/tlperl/lib/Test2/Transition.pod | 512 + .../texlive/tlnet/tlpkg/tlperl/lib/Test2/Util.pm | 419 + .../tlpkg/tlperl/lib/Test2/Util/ExternalMeta.pm | 182 + .../tlpkg/tlperl/lib/Test2/Util/Facets2Legacy.pm | 299 + .../tlnet/tlpkg/tlperl/lib/Test2/Util/HashBase.pm | 435 + .../tlnet/tlpkg/tlperl/lib/Test2/Util/Trace.pm | 54 + .../texlive/tlnet/tlpkg/tlperl/lib/Text/Abbrev.pm | 84 + .../tlnet/tlpkg/tlperl/lib/Text/Balanced.pm | 2281 + .../tlnet/tlpkg/tlperl/lib/Text/ParseWords.pm | 303 + .../texlive/tlnet/tlpkg/tlperl/lib/Text/Tabs.pm | 192 + .../texlive/tlnet/tlpkg/tlperl/lib/Text/Wrap.pm | 300 + systems/texlive/tlnet/tlpkg/tlperl/lib/Thread.pm | 273 + .../texlive/tlnet/tlpkg/tlperl/lib/Thread/Queue.pm | 657 + .../tlnet/tlpkg/tlperl/lib/Thread/Semaphore.pm | 273 + .../texlive/tlnet/tlpkg/tlperl/lib/Tie/Array.pm | 283 + systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/File.pm | 2638 + .../texlive/tlnet/tlpkg/tlperl/lib/Tie/Handle.pm | 201 + systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/Hash.pm | 270 + .../tlpkg/tlperl/lib/Tie/Hash/NamedCapture.pm | 49 + .../texlive/tlnet/tlpkg/tlperl/lib/Tie/Memoize.pm | 128 + .../texlive/tlnet/tlpkg/tlperl/lib/Tie/RefHash.pm | 279 + .../texlive/tlnet/tlpkg/tlperl/lib/Tie/Scalar.pm | 164 + .../tlnet/tlpkg/tlperl/lib/Tie/StdHandle.pm | 71 + .../tlnet/tlpkg/tlperl/lib/Tie/SubstrHash.pm | 215 + .../texlive/tlnet/tlpkg/tlperl/lib/Time/HiRes.pm | 676 + .../texlive/tlnet/tlpkg/tlperl/lib/Time/Local.pm | 419 + .../texlive/tlnet/tlpkg/tlperl/lib/Time/Piece.pm | 1167 + .../texlive/tlnet/tlpkg/tlperl/lib/Time/Seconds.pm | 266 + .../texlive/tlnet/tlpkg/tlperl/lib/Time/gmtime.pm | 95 + .../tlnet/tlpkg/tlperl/lib/Time/localtime.pm | 91 + systems/texlive/tlnet/tlpkg/tlperl/lib/Time/tm.pm | 33 + .../texlive/tlnet/tlpkg/tlperl/lib/UNIVERSAL.pm | 203 + .../tlnet/tlpkg/tlperl/lib/Unicode/Collate.pm | 2138 + .../tlpkg/tlperl/lib/Unicode/Collate/CJK/Big5.pm | 1376 + .../tlpkg/tlperl/lib/Unicode/Collate/CJK/GB2312.pm | 753 + .../tlperl/lib/Unicode/Collate/CJK/JISX0208.pm | 697 + .../tlpkg/tlperl/lib/Unicode/Collate/CJK/Korean.pm | 1560 + .../tlpkg/tlperl/lib/Unicode/Collate/CJK/Pinyin.pm | 3042 + .../tlpkg/tlperl/lib/Unicode/Collate/CJK/Stroke.pm | 2531 + .../tlpkg/tlperl/lib/Unicode/Collate/CJK/Zhuyin.pm | 3177 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale.pm | 552 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/af.pl | 6 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/ar.pl | 15 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/as.pl | 14 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/az.pl | 53 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/be.pl | 13 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/bn.pl | 9 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/ca.pl | 17 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/cs.pl | 25 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/cy.pl | 29 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/da.pl | 78 + .../tlperl/lib/Unicode/Collate/Locale/de_at_ph.pl | 31 + .../tlperl/lib/Unicode/Collate/Locale/de_phone.pl | 29 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/dsb.pl | 59 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/ee.pl | 36 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/eo.pl | 29 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/es.pl | 9 + .../tlperl/lib/Unicode/Collate/Locale/es_trad.pl | 15 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/et.pl | 51 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/fa.pl | 51 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/fi.pl | 65 + .../tlperl/lib/Unicode/Collate/Locale/fi_phone.pl | 63 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/fil.pl | 12 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/fo.pl | 77 + .../tlperl/lib/Unicode/Collate/Locale/fr_ca.pl | 4 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/gu.pl | 9 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/ha.pl | 16 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/haw.pl | 22 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/he.pl | 7 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/hi.pl | 9 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/hr.pl | 48 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/hu.pl | 151 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/hy.pl | 9 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/ig.pl | 54 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/is.pl | 81 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/ja.pl | 1938 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/kk.pl | 13 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/kl.pl | 75 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/kn.pl | 10 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/ko.pl | 647 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/kok.pl | 13 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/lkt.pl | 25 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/ln.pl | 12 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/lt.pl | 48 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/lv.pl | 37 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/mk.pl | 20 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/ml.pl | 23 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/mr.pl | 14 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/mt.pl | 31 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/nb.pl | 76 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/nn.pl | 76 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/nso.pl | 37 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/om.pl | 22 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/or.pl | 12 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/pa.pl | 27 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/pl.pl | 51 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/ro.pl | 53 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/sa.pl | 14 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/se.pl | 150 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/si.pl | 10 + .../tlperl/lib/Unicode/Collate/Locale/si_dict.pl | 9 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/sk.pl | 45 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/sl.pl | 17 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/sq.pl | 49 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/sr.pl | 8 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/sv.pl | 89 + .../tlperl/lib/Unicode/Collate/Locale/sv_refo.pl | 87 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/ta.pl | 55 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/te.pl | 9 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/th.pl | 23 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/tn.pl | 37 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/to.pl | 62 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/tr.pl | 46 + .../tlperl/lib/Unicode/Collate/Locale/ug_cyrl.pl | 7 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/uk.pl | 14 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/ur.pl | 89 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/vi.pl | 220 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/vo.pl | 29 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/wae.pl | 24 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/wo.pl | 32 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/yo.pl | 26 + .../tlpkg/tlperl/lib/Unicode/Collate/Locale/zh.pl | 211 + .../tlperl/lib/Unicode/Collate/Locale/zh_big5.pl | 945 + .../tlperl/lib/Unicode/Collate/Locale/zh_gb.pl | 627 + .../tlperl/lib/Unicode/Collate/Locale/zh_pin.pl | 1505 + .../tlperl/lib/Unicode/Collate/Locale/zh_strk.pl | 1589 + .../tlperl/lib/Unicode/Collate/Locale/zh_zhu.pl | 1563 + .../tlpkg/tlperl/lib/Unicode/Collate/allkeys.txt | 30699 ++ .../tlpkg/tlperl/lib/Unicode/Collate/keys.txt | 864 + .../tlnet/tlpkg/tlperl/lib/Unicode/Normalize.pm | 635 + .../texlive/tlnet/tlpkg/tlperl/lib/Unicode/UCD.pm | 4196 + .../texlive/tlnet/tlpkg/tlperl/lib/User/grent.pm | 95 + .../texlive/tlnet/tlpkg/tlperl/lib/User/pwent.pm | 301 + systems/texlive/tlnet/tlpkg/tlperl/lib/Win32.pm | 1335 + .../tlnet/tlpkg/tlperl/lib/Win32API/File.pm | 3046 + .../tlnet/tlpkg/tlperl/lib/Win32API/File/cFile.pc | 168 + .../texlive/tlnet/tlpkg/tlperl/lib/Win32CORE.pm | 38 + systems/texlive/tlnet/tlpkg/tlperl/lib/XSLoader.pm | 372 + .../texlive/tlnet/tlpkg/tlperl/lib/_charnames.pm | 819 + systems/texlive/tlnet/tlpkg/tlperl/lib/arybase.pm | 98 + .../texlive/tlnet/tlpkg/tlperl/lib/attributes.pm | 542 + .../texlive/tlnet/tlpkg/tlperl/lib/auto/B/B.dll | Bin 0 -> 77824 bytes .../tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.dll | Bin 0 -> 84480 bytes .../tlperl/lib/auto/Compress/Raw/Zlib/Zlib.dll | Bin 0 -> 124416 bytes .../tlnet/tlpkg/tlperl/lib/auto/Cwd/Cwd.dll | Bin 0 -> 22016 bytes .../tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.dll | Bin 0 -> 43008 bytes .../tlpkg/tlperl/lib/auto/Devel/Peek/Peek.dll | Bin 0 -> 23040 bytes .../tlnet/tlpkg/tlperl/lib/auto/Digest/MD5/MD5.dll | Bin 0 -> 24064 bytes .../tlnet/tlpkg/tlperl/lib/auto/Digest/SHA/SHA.dll | Bin 0 -> 47616 bytes .../tlpkg/tlperl/lib/auto/Encode/Byte/Byte.dll | Bin 0 -> 115200 bytes .../tlnet/tlpkg/tlperl/lib/auto/Encode/CN/CN.dll | Bin 0 -> 749568 bytes .../tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.dll | Bin 0 -> 25088 bytes .../tlnet/tlpkg/tlperl/lib/auto/Encode/Encode.dll | Bin 0 -> 43008 bytes .../tlnet/tlpkg/tlperl/lib/auto/Encode/JP/JP.dll | Bin 0 -> 865280 bytes .../tlnet/tlpkg/tlperl/lib/auto/Encode/KR/KR.dll | Bin 0 -> 820736 bytes .../tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.dll | Bin 0 -> 28672 bytes .../tlnet/tlpkg/tlperl/lib/auto/Encode/TW/TW.dll | Bin 0 -> 765952 bytes .../tlperl/lib/auto/Encode/Unicode/Unicode.dll | Bin 0 -> 23552 bytes .../tlnet/tlpkg/tlperl/lib/auto/Fcntl/Fcntl.dll | Bin 0 -> 20992 bytes .../tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.dll | Bin 0 -> 14848 bytes .../tlnet/tlpkg/tlperl/lib/auto/File/Glob/Glob.dll | Bin 0 -> 29696 bytes .../tlperl/lib/auto/Filter/Util/Call/Call.dll | Bin 0 -> 19456 bytes .../lib/auto/Hash/Util/FieldHash/FieldHash.dll | Bin 0 -> 22016 bytes .../tlnet/tlpkg/tlperl/lib/auto/Hash/Util/Util.dll | Bin 0 -> 24064 bytes .../tlperl/lib/auto/I18N/Langinfo/Langinfo.dll | Bin 0 -> 18432 bytes .../texlive/tlnet/tlpkg/tlperl/lib/auto/IO/IO.dll | Bin 0 -> 23040 bytes .../tlnet/tlpkg/tlperl/lib/auto/List/Util/Util.dll | Bin 0 -> 51712 bytes .../tlpkg/tlperl/lib/auto/MIME/Base64/Base64.dll | Bin 0 -> 21504 bytes .../lib/auto/Math/BigInt/FastCalc/FastCalc.dll | Bin 0 -> 20992 bytes .../tlnet/tlpkg/tlperl/lib/auto/Opcode/Opcode.dll | Bin 0 -> 24576 bytes .../tlnet/tlpkg/tlperl/lib/auto/POSIX/POSIX.dll | Bin 0 -> 106496 bytes .../tlperl/lib/auto/PerlIO/encoding/encoding.dll | Bin 0 -> 28160 bytes .../tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.dll | Bin 0 -> 14336 bytes .../tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.dll | Bin 0 -> 20992 bytes .../tlnet/tlpkg/tlperl/lib/auto/PerlIO/via/via.dll | Bin 0 -> 25088 bytes .../tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.dll | Bin 0 -> 32256 bytes .../tlnet/tlpkg/tlperl/lib/auto/Socket/Socket.dll | Bin 0 -> 31232 bytes .../tlpkg/tlperl/lib/auto/Storable/Storable.dll | Bin 0 -> 95744 bytes .../tlperl/lib/auto/Sys/Hostname/Hostname.dll | Bin 0 -> 14336 bytes .../auto/Tie/Hash/NamedCapture/NamedCapture.dll | Bin 0 -> 18432 bytes .../tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.dll | Bin 0 -> 27648 bytes .../tlpkg/tlperl/lib/auto/Time/Piece/Piece.dll | Bin 0 -> 28160 bytes .../tlperl/lib/auto/Unicode/Collate/Collate.dll | Bin 0 -> 630272 bytes .../lib/auto/Unicode/Normalize/Normalize.dll | Bin 0 -> 228864 bytes .../tlnet/tlpkg/tlperl/lib/auto/Win32/Win32.dll | Bin 0 -> 54272 bytes .../tlpkg/tlperl/lib/auto/Win32API/File/File.dll | Bin 0 -> 76288 bytes .../tlpkg/tlperl/lib/auto/Win32CORE/extralibs.ld | 1 + .../tlpkg/tlperl/lib/auto/arybase/arybase.dll | Bin 0 -> 25088 bytes .../tlperl/lib/auto/attributes/attributes.dll | Bin 0 -> 18432 bytes .../tlnet/tlpkg/tlperl/lib/auto/mro/mro.dll | Bin 0 -> 24576 bytes .../texlive/tlnet/tlpkg/tlperl/lib/auto/re/re.dll | Bin 0 -> 595968 bytes .../tlperl/lib/auto/threads/shared/shared.dll | Bin 0 -> 38912 bytes .../tlpkg/tlperl/lib/auto/threads/threads.dll | Bin 0 -> 37888 bytes systems/texlive/tlnet/tlpkg/tlperl/lib/autodie.pm | 450 + .../tlnet/tlpkg/tlperl/lib/autodie/Scope/Guard.pm | 65 + .../tlpkg/tlperl/lib/autodie/Scope/GuardStack.pm | 127 + .../texlive/tlnet/tlpkg/tlperl/lib/autodie/Util.pm | 250 + .../tlnet/tlpkg/tlperl/lib/autodie/exception.pm | 877 + .../tlpkg/tlperl/lib/autodie/exception/system.pm | 83 + .../tlnet/tlpkg/tlperl/lib/autodie/hints.pm | 601 + .../texlive/tlnet/tlpkg/tlperl/lib/autodie/skip.pm | 56 + systems/texlive/tlnet/tlpkg/tlperl/lib/autouse.pm | 171 + systems/texlive/tlnet/tlpkg/tlperl/lib/base.pm | 327 + systems/texlive/tlnet/tlpkg/tlperl/lib/bigint.pm | 822 + systems/texlive/tlnet/tlpkg/tlperl/lib/bignum.pm | 731 + systems/texlive/tlnet/tlpkg/tlperl/lib/bigrat.pm | 595 + systems/texlive/tlnet/tlpkg/tlperl/lib/blib.pm | 93 + systems/texlive/tlnet/tlpkg/tlperl/lib/bytes.pm | 124 + .../texlive/tlnet/tlpkg/tlperl/lib/bytes_heavy.pl | 40 + .../texlive/tlnet/tlpkg/tlperl/lib/charnames.pm | 506 + systems/texlive/tlnet/tlpkg/tlperl/lib/constant.pm | 450 + .../texlive/tlnet/tlpkg/tlperl/lib/deprecate.pm | 117 + .../texlive/tlnet/tlpkg/tlperl/lib/diagnostics.pm | 711 + systems/texlive/tlnet/tlpkg/tlperl/lib/dumpvar.pl | 564 + systems/texlive/tlnet/tlpkg/tlperl/lib/encoding.pm | 727 + .../tlnet/tlpkg/tlperl/lib/encoding/warnings.pm | 263 + .../texlive/tlnet/tlpkg/tlperl/lib/experimental.pm | 266 + systems/texlive/tlnet/tlpkg/tlperl/lib/feature.pm | 533 + systems/texlive/tlnet/tlpkg/tlperl/lib/fields.pm | 320 + systems/texlive/tlnet/tlpkg/tlperl/lib/filetest.pm | 117 + systems/texlive/tlnet/tlpkg/tlperl/lib/if.pm | 116 + systems/texlive/tlnet/tlpkg/tlperl/lib/integer.pm | 93 + systems/texlive/tlnet/tlpkg/tlperl/lib/less.pm | 158 + systems/texlive/tlnet/tlpkg/tlperl/lib/lib.pm | 211 + systems/texlive/tlnet/tlpkg/tlperl/lib/locale.pm | 143 + .../tlnet/tlpkg/tlperl/lib/meta_notation.pm | 53 + systems/texlive/tlnet/tlpkg/tlperl/lib/mro.pm | 353 + systems/texlive/tlnet/tlpkg/tlperl/lib/ok.pm | 49 + systems/texlive/tlnet/tlpkg/tlperl/lib/open.pm | 266 + systems/texlive/tlnet/tlpkg/tlperl/lib/ops.pm | 47 + systems/texlive/tlnet/tlpkg/tlperl/lib/overload.pm | 1693 + .../tlnet/tlpkg/tlperl/lib/overload/numbers.pm | 176 + .../texlive/tlnet/tlpkg/tlperl/lib/overloading.pm | 99 + systems/texlive/tlnet/tlpkg/tlperl/lib/parent.pm | 119 + systems/texlive/tlnet/tlpkg/tlperl/lib/perl5db.pl | 10382 + systems/texlive/tlnet/tlpkg/tlperl/lib/perlfaq.pm | 5 + .../texlive/tlnet/tlpkg/tlperl/lib/perllocal.pod | 770 + systems/texlive/tlnet/tlpkg/tlperl/lib/re.pm | 754 + systems/texlive/tlnet/tlpkg/tlperl/lib/sigtrap.pm | 289 + systems/texlive/tlnet/tlpkg/tlperl/lib/sort.pm | 152 + systems/texlive/tlnet/tlpkg/tlperl/lib/strict.pm | 184 + systems/texlive/tlnet/tlpkg/tlperl/lib/subs.pm | 41 + systems/texlive/tlnet/tlpkg/tlperl/lib/threads.pm | 1177 + .../tlnet/tlpkg/tlperl/lib/threads/shared.pm | 679 + .../tlnet/tlpkg/tlperl/lib/unicore/Blocks.txt | 316 + .../tlpkg/tlperl/lib/unicore/CombiningClass.pl | 362 + .../tlpkg/tlperl/lib/unicore/Decomposition.pl | 5706 + .../tlnet/tlpkg/tlperl/lib/unicore/Heavy.pl | 7146 + .../texlive/tlnet/tlpkg/tlperl/lib/unicore/Name.pl | 31036 ++ .../texlive/tlnet/tlpkg/tlperl/lib/unicore/Name.pm | 488 + .../tlpkg/tlperl/lib/unicore/NamedSequences.txt | 565 + .../tlpkg/tlperl/lib/unicore/SpecialCasing.txt | 281 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Age.pl | 1422 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Bc.pl | 665 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Bmg.pl | 388 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Bpb.pl | 140 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Bpt.pl | 140 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Cf.pl | 804 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Digit.pl | 614 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Ea.pl | 320 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Fold.pl | 1464 + .../tlnet/tlpkg/tlperl/lib/unicore/To/GCB.pl | 1374 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Gc.pl | 3075 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Hst.pl | 824 + .../tlnet/tlpkg/tlperl/lib/unicore/To/InPC.pl | 569 + .../tlnet/tlpkg/tlperl/lib/unicore/To/InSC.pl | 704 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Isc.pl | 20 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Jg.pl | 208 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Jt.pl | 452 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Lb.pl | 2649 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Lc.pl | 681 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Lower.pl | 1339 + .../tlnet/tlpkg/tlperl/lib/unicore/To/NFCQC.pl | 134 + .../tlnet/tlpkg/tlperl/lib/unicore/To/NFDQC.pl | 251 + .../tlnet/tlpkg/tlperl/lib/unicore/To/NFKCCF.pl | 10262 + .../tlnet/tlpkg/tlperl/lib/unicore/To/NFKCQC.pl | 310 + .../tlnet/tlpkg/tlperl/lib/unicore/To/NFKDQC.pl | 410 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Na1.pl | 1998 + .../tlnet/tlpkg/tlperl/lib/unicore/To/NameAlia.pl | 484 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Nt.pl | 235 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Nv.pl | 661 + .../tlnet/tlpkg/tlperl/lib/unicore/To/PerlDeci.pl | 81 + .../tlnet/tlpkg/tlperl/lib/unicore/To/SB.pl | 2260 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Sc.pl | 887 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Scx.pl | 953 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Tc.pl | 744 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Title.pl | 1404 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Uc.pl | 798 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Upper.pl | 1431 + .../tlnet/tlpkg/tlperl/lib/unicore/To/Vo.pl | 813 + .../tlnet/tlpkg/tlperl/lib/unicore/To/WB.pl | 981 + .../tlnet/tlpkg/tlperl/lib/unicore/To/_PerlLB.pl | 1801 + .../tlnet/tlpkg/tlperl/lib/unicore/To/_PerlSCX.pl | 953 + .../tlnet/tlpkg/tlperl/lib/unicore/To/_PerlWB.pl | 988 + .../texlive/tlnet/tlpkg/tlperl/lib/unicore/UCD.pl | 9802 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Age/NA.pl | 1331 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V100.pl | 94 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V11.pl | 590 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V20.pl | 72 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V30.pl | 256 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V31.pl | 86 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V32.pl | 132 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V40.pl | 168 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V41.pl | 186 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V50.pl | 84 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V51.pl | 192 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V52.pl | 194 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V60.pl | 226 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V61.pl | 192 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V70.pl | 296 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V80.pl | 132 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V90.pl | 118 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Alpha/Y.pl | 1334 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/AL.pl | 56 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/AN.pl | 26 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/B.pl | 24 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/BN.pl | 78 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/CS.pl | 40 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/EN.pl | 38 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/ES.pl | 32 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/ET.pl | 58 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/L.pl | 873 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/NSM.pl | 606 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/ON.pl | 368 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/R.pl | 80 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/WS.pl | 28 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/BidiC/Y.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/BidiM/Y.pl | 236 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Blk/NB.pl | 109 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Bpt/C.pl | 134 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Bpt/N.pl | 73 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Bpt/O.pl | 134 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/CE/Y.pl | 80 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/CI/Y.pl | 776 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/CWCF/Y.pl | 1220 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/CWCM/Y.pl | 246 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/CWKCF/Y.pl | 1644 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/CWL/Y.pl | 1194 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/CWT/Y.pl | 1230 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/CWU/Y.pl | 1228 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Cased/Y.pl | 284 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/A.pl | 234 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/AL.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/AR.pl | 24 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/ATAR.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/B.pl | 158 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/BR.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/DB.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/NK.pl | 60 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/NR.pl | 351 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/OV.pl | 36 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/VR.pl | 110 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/CompEx/Y.pl | 160 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/DI/Y.pl | 48 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Dash/Y.pl | 56 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Dep/Y.pl | 30 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Dia/Y.pl | 332 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Com.pl | 162 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Enc.pl | 30 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Fin.pl | 240 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Font.pl | 148 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Init.pl | 164 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Iso.pl | 210 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Med.pl | 122 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Nar.pl | 26 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Nb.pl | 24 + .../tlpkg/tlperl/lib/unicore/lib/Dt/NonCanon.pl | 386 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Sqr.pl | 32 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Sub.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Sup.pl | 62 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Vert.pl | 24 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/A.pl | 372 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/H.pl | 28 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/N.pl | 547 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/Na.pl | 28 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/W.pl | 222 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Ext/Y.pl | 72 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/CN.pl | 52 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/EB.pl | 76 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/EX.pl | 652 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/GAZ.pl | 54 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/LV.pl | 812 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/LVT.pl | 812 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/PP.pl | 34 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/SM.pl | 304 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/XX.pl | 685 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/C.pl | 1319 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Cf.pl | 50 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Cn.pl | 1311 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/L.pl | 1184 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/LC.pl | 266 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Ll.pl | 1280 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Lm.pl | 128 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Lo.pl | 932 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Lu.pl | 1268 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/M.pl | 540 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Mc.pl | 334 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Me.pl | 24 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Mn.pl | 616 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/N.pl | 246 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Nd.pl | 124 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Nl.pl | 38 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/No.pl | 134 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/P.pl | 358 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pc.pl | 26 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pd.pl | 48 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pe.pl | 158 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pf.pl | 34 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pi.pl | 36 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Po.pl | 352 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Ps.pl | 164 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/S.pl | 448 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Sc.pl | 48 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Sk.pl | 72 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Sm.pl | 142 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/So.pl | 360 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Z.pl | 30 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Zs.pl | 28 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/GrBase/Y.pl | 1596 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Hex/Y.pl | 26 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Hst/NA.pl | 25 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Hyphen/T.pl | 34 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/IDC/Y.pl | 1392 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/IDS/Y.pl | 1184 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Ideo/Y.pl | 46 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/In/10_0.pl | 1332 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/In/2_0.pl | 638 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/In/2_1.pl | 638 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/In/3_0.pl | 752 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/In/3_1.pl | 818 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/In/3_2.pl | 808 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/In/4_0.pl | 838 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/In/4_1.pl | 874 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/In/5_0.pl | 894 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/In/5_1.pl | 924 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/In/5_2.pl | 1004 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_0.pl | 1036 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_1.pl | 1112 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_2.pl | 1112 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_3.pl | 1112 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/In/7_0.pl | 1234 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/In/8_0.pl | 1260 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/In/9_0.pl | 1310 + .../tlpkg/tlperl/lib/unicore/lib/InPC/Bottom.pl | 278 + .../tlpkg/tlperl/lib/unicore/lib/InPC/Left.pl | 94 + .../tlpkg/tlperl/lib/unicore/lib/InPC/LeftAndR.pl | 40 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/NA.pl | 397 + .../tlpkg/tlperl/lib/unicore/lib/InPC/Overstru.pl | 22 + .../tlpkg/tlperl/lib/unicore/lib/InPC/Right.pl | 314 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Top.pl | 362 + .../tlpkg/tlperl/lib/unicore/lib/InPC/TopAndBo.pl | 26 + .../tlpkg/tlperl/lib/unicore/lib/InPC/TopAndL2.pl | 22 + .../tlpkg/tlperl/lib/unicore/lib/InPC/TopAndLe.pl | 26 + .../tlpkg/tlperl/lib/unicore/lib/InPC/TopAndRi.pl | 32 + .../tlpkg/tlperl/lib/unicore/lib/InPC/VisualOr.pl | 28 + .../tlpkg/tlperl/lib/unicore/lib/InSC/Avagraha.pl | 44 + .../tlpkg/tlperl/lib/unicore/lib/InSC/Bindu.pl | 110 + .../tlpkg/tlperl/lib/unicore/lib/InSC/Cantilla.pl | 34 + .../tlpkg/tlperl/lib/unicore/lib/InSC/Consona2.pl | 38 + .../tlpkg/tlperl/lib/unicore/lib/InSC/Consona3.pl | 36 + .../tlpkg/tlperl/lib/unicore/lib/InSC/Consona4.pl | 40 + .../tlpkg/tlperl/lib/unicore/lib/InSC/Consona5.pl | 36 + .../tlpkg/tlperl/lib/unicore/lib/InSC/Consona6.pl | 24 + .../tlpkg/tlperl/lib/unicore/lib/InSC/Consonan.pl | 312 + .../tlpkg/tlperl/lib/unicore/lib/InSC/Invisibl.pl | 34 + .../tlpkg/tlperl/lib/unicore/lib/InSC/Nukta.pl | 62 + .../tlpkg/tlperl/lib/unicore/lib/InSC/Number.pl | 100 + .../tlpkg/tlperl/lib/unicore/lib/InSC/Other.pl | 627 + .../tlpkg/tlperl/lib/unicore/lib/InSC/PureKill.pl | 52 + .../tlpkg/tlperl/lib/unicore/lib/InSC/Syllable.pl | 46 + .../tlpkg/tlperl/lib/unicore/lib/InSC/ToneMark.pl | 44 + .../tlpkg/tlperl/lib/unicore/lib/InSC/Virama.pl | 62 + .../tlpkg/tlperl/lib/unicore/lib/InSC/Visarga.pl | 80 + .../tlpkg/tlperl/lib/unicore/lib/InSC/Vowel.pl | 24 + .../tlpkg/tlperl/lib/unicore/lib/InSC/VowelDep.pl | 250 + .../tlpkg/tlperl/lib/unicore/lib/InSC/VowelInd.pl | 170 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Ain.pl | 24 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Alef.pl | 26 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Beh.pl | 28 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Dal.pl | 24 + .../tlpkg/tlperl/lib/unicore/lib/Jg/FarsiYeh.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Feh.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Gaf.pl | 26 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Hah.pl | 30 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Kaf.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Lam.pl | 22 + .../tlpkg/tlperl/lib/unicore/lib/Jg/NoJoinin.pl | 61 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Qaf.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Reh.pl | 32 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Sad.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Seen.pl | 28 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Waw.pl | 28 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Yeh.pl | 30 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/C.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/D.pl | 132 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/R.pl | 120 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/T.pl | 640 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/U.pl | 681 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/AI.pl | 232 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/AL.pl | 1456 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/BA.pl | 198 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/BB.pl | 56 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/CJ.pl | 64 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/CL.pl | 178 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/CM.pl | 516 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/EB.pl | 78 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/EX.pl | 62 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/GL.pl | 36 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/ID.pl | 334 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/IN.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/IS.pl | 34 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/NS.pl | 48 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/OP.pl | 182 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/PO.pl | 54 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/PR.pl | 58 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/QU.pl | 40 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/SA.pl | 98 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/XX.pl | 1229 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Lower/Y.pl | 1294 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Math/Y.pl | 290 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/NFCQC/M.pl | 96 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/NFCQC/Y.pl | 237 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/NFDQC/N.pl | 476 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/NFDQC/Y.pl | 477 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/NFKCQC/N.pl | 512 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/NFKCQC/Y.pl | 587 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/NFKDQC/N.pl | 794 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/NFKDQC/Y.pl | 795 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nt/Di.pl | 54 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nt/None.pl | 391 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nt/Nu.pl | 294 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/0.pl | 160 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1.pl | 252 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/10.pl | 114 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/100.pl | 74 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1000.pl | 52 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/10000.pl | 32 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/11.pl | 26 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/12.pl | 26 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/13.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/14.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/15.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/16.pl | 24 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/17.pl | 24 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/18.pl | 24 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/19.pl | 24 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_16.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_2.pl | 38 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_3.pl | 26 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_4.pl | 36 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_8.pl | 26 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/2.pl | 252 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/20.pl | 76 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/200.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/2_3.pl | 28 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3.pl | 248 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/30.pl | 46 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/300.pl | 24 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3_16.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3_4.pl | 28 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/4.pl | 236 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/40.pl | 46 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/400.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/5.pl | 240 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/50.pl | 62 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/500.pl | 34 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/5000.pl | 26 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/50000.pl | 24 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/6.pl | 216 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/60.pl | 36 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/600.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/7.pl | 210 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/70.pl | 36 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/700.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/8.pl | 204 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/80.pl | 34 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/800.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/9.pl | 208 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/90.pl | 34 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/900.pl | 24 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/PCM/Y.pl | 24 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/PatSyn/Y.pl | 70 + .../tlpkg/tlperl/lib/unicore/lib/Perl/Alnum.pl | 1404 + .../tlpkg/tlperl/lib/unicore/lib/Perl/Assigned.pl | 1312 + .../tlpkg/tlperl/lib/unicore/lib/Perl/Blank.pl | 30 + .../tlpkg/tlperl/lib/unicore/lib/Perl/Graph.pl | 1322 + .../tlpkg/tlperl/lib/unicore/lib/Perl/PerlWord.pl | 22 + .../tlpkg/tlperl/lib/unicore/lib/Perl/PosixPun.pl | 22 + .../tlpkg/tlperl/lib/unicore/lib/Perl/Print.pl | 1316 + .../tlpkg/tlperl/lib/unicore/lib/Perl/SpacePer.pl | 34 + .../tlpkg/tlperl/lib/unicore/lib/Perl/Title.pl | 34 + .../tlpkg/tlperl/lib/unicore/lib/Perl/Word.pl | 1400 + .../tlpkg/tlperl/lib/unicore/lib/Perl/XPosixPu.pl | 348 + .../tlpkg/tlperl/lib/unicore/lib/Perl/_PerlAny.pl | 266 + .../tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCh2.pl | 1412 + .../tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCha.pl | 1196 + .../tlpkg/tlperl/lib/unicore/lib/Perl/_PerlFol.pl | 72 + .../tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDC.pl | 1406 + .../tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDS.pl | 1202 + .../tlpkg/tlperl/lib/unicore/lib/Perl/_PerlNch.pl | 50 + .../tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPat.pl | 24 + .../tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPr2.pl | 40 + .../tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPro.pl | 38 + .../tlpkg/tlperl/lib/unicore/lib/Perl/_PerlQuo.pl | 92 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/QMark/Y.pl | 40 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/SB/AT.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/SB/CL.pl | 102 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/SB/EX.pl | 546 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/SB/FO.pl | 50 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/SB/LE.pl | 978 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/SB/LO.pl | 1292 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/SB/NU.pl | 124 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/SB/SC.pl | 52 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/SB/ST.pl | 144 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/SB/Sp.pl | 32 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/SB/UP.pl | 1284 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/SB/XX.pl | 1537 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/SD/Y.pl | 76 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/STerm/Y.pl | 150 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Arab.pl | 128 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Armn.pl | 26 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Beng.pl | 42 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Cprt.pl | 26 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Cyrl.pl | 30 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Deva.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Dupl.pl | 24 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Geor.pl | 30 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Glag.pl | 28 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gran.pl | 44 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Grek.pl | 86 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gujr.pl | 42 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Guru.pl | 46 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Han.pl | 48 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Hang.pl | 42 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Hira.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Kana.pl | 30 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Knda.pl | 42 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Latn.pl | 76 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Limb.pl | 24 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Linb.pl | 28 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Mlym.pl | 30 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Mong.pl | 28 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Mult.pl | 24 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Orya.pl | 42 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Sinh.pl | 40 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Syrc.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Taml.pl | 46 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Telu.pl | 40 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Zinh.pl | 68 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Zyyy.pl | 342 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Adlm.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Arab.pl | 118 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Armn.pl | 26 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Beng.pl | 50 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Bhks.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Bopo.pl | 38 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cakm.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cham.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Copt.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cprt.pl | 32 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cyrl.pl | 30 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Deva.pl | 26 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Dupl.pl | 24 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Ethi.pl | 78 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Geor.pl | 30 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Glag.pl | 36 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gonm.pl | 28 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gran.pl | 64 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Grek.pl | 90 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gujr.pl | 48 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Guru.pl | 52 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Han.pl | 78 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hang.pl | 56 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hebr.pl | 32 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hira.pl | 44 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hmng.pl | 24 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Kana.pl | 42 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Khar.pl | 30 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Khmr.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Knda.pl | 52 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Lana.pl | 24 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Lao.pl | 50 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Latn.pl | 88 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Limb.pl | 26 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Lina.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Linb.pl | 34 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mlym.pl | 36 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mong.pl | 24 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mult.pl | 26 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mymr.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Orya.pl | 46 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Phlp.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Shrd.pl | 28 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Sind.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Sinh.pl | 42 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Syrc.pl | 34 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tagb.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Takr.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Talu.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Taml.pl | 60 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Telu.pl | 46 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Thaa.pl | 28 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tibt.pl | 28 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tirh.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Xsux.pl | 22 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Yi.pl | 28 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Zinh.pl | 46 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Zyyy.pl | 290 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Zzzz.pl | 1307 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Term/Y.pl | 208 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/UIdeo/Y.pl | 42 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Upper/Y.pl | 1278 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/R.pl | 189 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/Tr.pl | 42 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/Tu.pl | 82 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/U.pl | 266 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/WB/EX.pl | 28 + .../tlpkg/tlperl/lib/unicore/lib/WB/Extend.pl | 546 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/WB/FO.pl | 48 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/WB/HL.pl | 34 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/WB/KA.pl | 32 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/WB/LE.pl | 1028 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/WB/MB.pl | 26 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/WB/ML.pl | 30 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/WB/MN.pl | 42 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/WB/NU.pl | 124 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/WB/XX.pl | 1513 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/XIDC/Y.pl | 1406 + .../tlnet/tlpkg/tlperl/lib/unicore/lib/XIDS/Y.pl | 1198 + .../texlive/tlnet/tlpkg/tlperl/lib/unicore/version | 1 + systems/texlive/tlnet/tlpkg/tlperl/lib/utf8.pm | 287 + .../texlive/tlnet/tlpkg/tlperl/lib/utf8_heavy.pl | 687 + systems/texlive/tlnet/tlpkg/tlperl/lib/vars.pm | 84 + systems/texlive/tlnet/tlpkg/tlperl/lib/version.pm | 85 + systems/texlive/tlnet/tlpkg/tlperl/lib/version.pod | 321 + .../tlnet/tlpkg/tlperl/lib/version/Internals.pod | 699 + .../tlnet/tlpkg/tlperl/lib/version/regex.pm | 115 + systems/texlive/tlnet/tlpkg/tlperl/lib/vmsish.pm | 154 + systems/texlive/tlnet/tlpkg/tlperl/lib/warnings.pm | 1345 + .../tlnet/tlpkg/tlperl/lib/warnings/register.pm | 46 + 1429 files changed, 1254695 insertions(+) create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/.packlist create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/AnyDBM_File.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/App/Cpan.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State/Result.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State/Result/Test.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar/Constant.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar/File.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Attribute/Handlers.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/AutoLoader.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/AutoSplit.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/B.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/B/Concise.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/B/Debug.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/B/Deparse.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/B/Op_private.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/B/Showlex.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/B/Terse.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/B/Xref.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Benchmark.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/EXTERN.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/INTERN.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/XSUB.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/arpa/inet.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/av.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/bitcount.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/charclass_invlists.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/config.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/cop.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/cv.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/dirent.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/dosish.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/dquote_inline.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/ebcdic_tables.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/embed.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/embedvar.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/fakesdio.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/feature.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/form.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/git_version.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/gv.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/handy.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/hv.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/hv_func.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/hv_macro.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/inline.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/intrpvar.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/invlist_inline.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/iperlsys.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/keywords.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/l1_char_class_tab.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/libperl528.a create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/malloc_ctl.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/metaconfig.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/mg.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/mg_data.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/mg_raw.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/mg_vtable.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/mydtrace.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/netdb.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/nostdio.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/op.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/op_reg_common.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/opcode.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/opnames.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/overload.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/pad.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/parser.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/patchlevel.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perl.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perl_inc_macro.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perl_langinfo.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlapi.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlhost.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlio.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perliol.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlsdio.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perlvars.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/perly.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/pp.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/pp_proto.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/proto.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/reentr.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regcharclass.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regcomp.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regexp.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/regnodes.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sbox32_hash.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/scope.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/stadtx_hash.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sv.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sys/errno2.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/sys/socket.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/thread.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/time64.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/time64_config.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/uconfig.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/uni_keywords.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/unicode_constants.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/unixish.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/utf8.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/utfebcdic.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/util.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/uudmap.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/vdir.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/vmem.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/vutil.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/warnings.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/win32.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/win32iop-o.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/win32iop.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/win32thread.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/wince.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/zaphod32_hash.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/API/HOWTO.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Author.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Bundle.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/CacheMgr.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Complete.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Debug.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/DeferredCode.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Distribution.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Distroprefs.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Distrostatus.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Exception/RecursiveDependency.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Exception/blocked_urllist.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Exception/yaml_not_installed.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Exception/yaml_process_error.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/FTP.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/FTP/netrc.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/FirstTime.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/HTTP/Client.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/HTTP/Credentials.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/HandleConfig.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Index.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/InfoObj.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Kwalify.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Kwalify/distroprefs.dd create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Kwalify/distroprefs.yml create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/LWP/UserAgent.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Meta.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Meta/Converter.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Meta/Feature.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Meta/History.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_0.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_1.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_2.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_3.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_4.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Meta/Merge.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Meta/Prereqs.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Meta/Requirements.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Meta/Spec.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Meta/Validator.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Meta/YAML.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Mirrors.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Module.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Nox.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Plugin.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Plugin/Specfile.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Prompt.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Queue.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Shell.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Tarzip.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/URL.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/CPAN/Version.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Carp.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Carp/Heavy.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Class/Struct.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Compress/Raw/Bzip2.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Compress/Raw/Zlib.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Compress/Zlib.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Config.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Config.pm.orig create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Config.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Config/Extensions.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Config/Perl/V.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Config_git.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Config_heavy.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Config_heavy.pl.orig create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Cwd.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/DB.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/DBM_Filter.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/DBM_Filter/compress.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/DBM_Filter/encode.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/DBM_Filter/int32.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/DBM_Filter/null.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/DBM_Filter/utf8.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Data/Dumper.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Devel/PPPort.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Devel/Peek.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Devel/SelfStubber.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Digest.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/MD5.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/SHA.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/base.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Digest/file.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/DirHandle.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Dumpvalue.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/DynaLoader.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/Alias.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/Byte.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/CJKConstants.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/CN.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/CN/HZ.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/Changes.e2x create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/Config.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/ConfigLocal_PM.e2x create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/EBCDIC.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/Encoder.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/Encoding.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/GSM0338.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/Guess.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/JP.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/JP/H2Z.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/JP/JIS7.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/KR.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/KR/2022_KR.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/MIME/Header.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/MIME/Header/ISO_2022_JP.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/MIME/Name.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/Makefile_PL.e2x create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/PerlIO.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/README.e2x create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/Supported.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/Symbol.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/TW.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/Unicode.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/Unicode/UTF7.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/_PM.e2x create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/_T.e2x create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Encode/encode.h create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/English.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Env.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Errno.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Exporter.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Exporter/Heavy.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Base.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Unix.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/VMS.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/aix.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/android.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/cygwin.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/darwin.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/dec_osf.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/os2.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Command.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Command/MM.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Constant.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Constant/Base.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Constant/ProxySubs.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Constant/Utils.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Constant/XS.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Embed.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Install.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Installed.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Liblist.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Liblist/Kid.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MANIFEST.SKIP create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_AIX.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Any.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_BeOS.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Cygwin.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_DOS.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Darwin.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_MacOS.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_NW5.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_QNX.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_UWIN.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Unix.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_VMS.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_VOS.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Win32.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MM_Win95.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MY.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Config.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/FAQ.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Locale.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Tutorial.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Manifest.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Miniperl.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Mkbootstrap.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Mksymlists.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Packlist.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/Constants.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/CountLines.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/Eval.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/ParseXS/Utilities.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps/Cmd.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps/InputMap.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps/OutputMap.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/Typemaps/Type.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/testlib.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/typemap create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ExtUtils/xsubpp create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Fatal.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Fcntl.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/File/Basename.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/File/Compare.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/File/Copy.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/File/DosGlob.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/File/Fetch.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/File/Find.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/File/Glob.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/File/GlobMapper.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/File/Path.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/AmigaOS.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Cygwin.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Epoc.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Functions.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Mac.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/OS2.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Unix.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/VMS.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/File/Spec/Win32.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/File/Temp.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/File/stat.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/FileCache.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/FileHandle.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Filter/Simple.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Filter/Util/Call.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/FindBin.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Getopt/Long.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Getopt/Std.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/HTTP/Tiny.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Hash/Util.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Hash/Util/FieldHash.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/I18N/Collate.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/I18N/LangTags.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/I18N/LangTags/Detect.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/I18N/LangTags/List.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/I18N/Langinfo.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Adapter/Bzip2.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Adapter/Deflate.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Adapter/Identity.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Base.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Base/Common.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Bzip2.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Deflate.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/FAQ.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Gzip.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Gzip/Constants.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/RawDeflate.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zip.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zip/Constants.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zlib/Constants.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Compress/Zlib/Extra.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Dir.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/File.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Handle.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Pipe.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Poll.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Seekable.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Select.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket/INET.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket/IP.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Socket/UNIX.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Bunzip2.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Identity.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Inflate.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/AnyInflate.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/AnyUncompress.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Base.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Bunzip2.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Gunzip.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Inflate.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/RawInflate.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Uncompress/Unzip.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IO/Zlib.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IPC/Cmd.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IPC/Open2.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/IPC/Open3.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Internals.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/JSON/PP.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/JSON/PP/Boolean.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/List/Util.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/List/Util/XS.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/Changes.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/Constants.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/Country.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/Country.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/Country_Codes.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/Country_Retired.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/Currency.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/Currency.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/Currency_Codes.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/Currency_Retired.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/LangExt.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/LangExt.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/LangExt_Codes.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/LangExt_Retired.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/LangFam.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/LangFam.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/LangFam_Codes.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/LangFam_Retired.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/LangVar.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/LangVar.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/LangVar_Codes.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/LangVar_Retired.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/Language.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/Language.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/Language_Codes.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/Language_Retired.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/Script.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/Script.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/Script_Codes.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/Script_Retired.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Codes/Types.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Country.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Country.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Currency.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Currency.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Language.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Language.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext/Cookbook.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext/Guts.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext/GutsLoader.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext/Simple.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Maketext/TPJ13.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Script.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Locale/Script.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/MIME/Base64.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/MIME/QuotedPrint.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigFloat.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigFloat/Trace.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/Calc.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/CalcEmu.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/FastCalc.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/Lib.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigInt/Trace.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Math/BigRat.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Math/Complex.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Math/Trig.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/AnyDBM_File.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/Expire.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/ExpireFile.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/ExpireTest.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/NDBM_File.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/SDBM_File.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Memoize/Storable.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Module/CoreList.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Module/CoreList.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Module/CoreList/Utils.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Module/Load.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Module/Load/Conditional.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Module/Loaded.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Module/Metadata.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/NEXT.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Cmd.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Config.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Domain.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/A.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/E.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/I.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/L.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Net/FTP/dataconn.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Net/NNTP.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Netrc.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Net/POP3.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Ping.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Net/SMTP.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Net/Time.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Net/hostent.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Net/libnetFAQ.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Net/netent.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Net/protoent.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Net/servent.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/O.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Opcode.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/POSIX.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/POSIX.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Params/Check.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Parse/CPAN/Meta.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Perl/OSType.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/PerlIO.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/PerlIO/encoding.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/PerlIO/mmap.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/PerlIO/scalar.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/PerlIO/via.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/PerlIO/via/QuotedPrint.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Checker.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Escapes.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Find.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Functions.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Html.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/InputObjects.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Man.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/ParseLink.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/ParseUtils.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Parser.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Perldoc.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Perldoc/BaseTo.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Perldoc/GetOptsOO.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Perldoc/ToANSI.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Perldoc/ToChecker.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Perldoc/ToMan.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Perldoc/ToNroff.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Perldoc/ToPod.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Perldoc/ToRtf.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Perldoc/ToTerm.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Perldoc/ToText.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Perldoc/ToTk.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Perldoc/ToXml.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/PlainText.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Select.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/BlackBox.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Checker.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Debug.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/DumpAsText.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/DumpAsXML.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/HTML.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/HTMLBatch.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/HTMLLegacy.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/LinkSection.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Methody.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Progress.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParser.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParserEndToken.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParserStartToken.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParserTextToken.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/PullParserToken.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/RTF.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Search.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/SimpleTree.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Subclassing.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Text.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/TextContent.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/TiedOutFH.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/Transcode.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/TranscodeDumb.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/TranscodeSmart.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/XHTML.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Simple/XMLOutStream.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text/Color.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text/Overstrike.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Text/Termcap.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Pod/Usage.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/SDBM_File.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Safe.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Scalar/Util.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Search/Dict.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/SelectSaver.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/SelfLoader.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Socket.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Storable.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Storable/Limit.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Sub/Util.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Symbol.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Sys/Hostname.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Base.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Base.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Color.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Console.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Console/ParallelSession.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Console/Session.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/File.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/File/Session.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Formatter/Session.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Harness.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Harness/Beyond.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Harness/Env.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Object.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Aggregator.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Grammar.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Iterator.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Iterator/Array.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Iterator/Process.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Iterator/Stream.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/IteratorFactory.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Multiplexer.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Bailout.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Comment.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Plan.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Pragma.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Test.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Unknown.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/Version.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Result/YAML.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/ResultFactory.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Scheduler.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Job.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Spinner.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/Source.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Executable.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/File.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Handle.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Perl.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/RawTAP.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Reader.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Writer.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Term/ANSIColor.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Term/Cap.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Term/Complete.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Term/ReadLine.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Formatter.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/IO/Scalar.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Module.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Tester.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/Tester/Color.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Builder/TodoDiag.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Harness.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test/More.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Simple.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester/Capture.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester/CaptureRunner.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tester/Delegate.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test/Tutorial.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test/use/ok.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Breakage.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Context.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Instance.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/API/Stack.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Bail.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Diag.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Encoding.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Exception.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Fail.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Generic.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Note.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Ok.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Pass.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Plan.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Skip.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Subtest.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/TAP/Version.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/V2.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Event/Waiting.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/About.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Amnesty.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Assert.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Control.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Error.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Hub.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Info.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Meta.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Parent.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Plan.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Render.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/EventFacet/Trace.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Formatter.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Formatter/TAP.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub/Interceptor.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub/Interceptor/Terminator.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Hub/Subtest.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/IPC.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/IPC/Driver.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/IPC/Driver/Files.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Tools/Tiny.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Transition.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/ExternalMeta.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/Facets2Legacy.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/HashBase.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Test2/Util/Trace.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Text/Abbrev.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Text/Balanced.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Text/ParseWords.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Text/Tabs.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Text/Wrap.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Thread.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Thread/Queue.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Thread/Semaphore.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/Array.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/File.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/Handle.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/Hash.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/Hash/NamedCapture.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/Memoize.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/RefHash.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/Scalar.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/StdHandle.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Tie/SubstrHash.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Time/HiRes.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Time/Local.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Time/Piece.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Time/Seconds.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Time/gmtime.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Time/localtime.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Time/tm.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/UNIVERSAL.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Big5.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/GB2312.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/JISX0208.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Korean.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Pinyin.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Stroke.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/CJK/Zhuyin.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/af.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ar.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/as.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/az.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/be.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/bn.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ca.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/cs.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/cy.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/da.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_at_ph.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_phone.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/dsb.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ee.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/eo.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/es.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/es_trad.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/et.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fa.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi_phone.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fil.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fo.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/fr_ca.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/gu.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ha.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/haw.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/he.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hi.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hr.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hu.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/hy.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ig.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/is.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ja.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kk.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kl.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kn.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ko.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/kok.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/lkt.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ln.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/lt.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/lv.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/mk.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ml.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/mr.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/mt.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/nb.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/nn.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/nso.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/om.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/or.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/pa.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/pl.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ro.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sa.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/se.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/si.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/si_dict.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sk.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sl.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sq.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sr.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv_refo.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ta.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/te.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/th.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/tn.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/to.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/tr.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ug_cyrl.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/uk.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/ur.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/vi.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/vo.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/wae.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/wo.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/yo.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_big5.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_gb.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_pin.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_strk.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_zhu.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/allkeys.txt create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Collate/keys.txt create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/Normalize.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Unicode/UCD.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/User/grent.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/User/pwent.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Win32.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Win32API/File.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Win32API/File/cFile.pc create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/Win32CORE.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/XSLoader.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/_charnames.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/arybase.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/attributes.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/B/B.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Cwd/Cwd.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Devel/Peek/Peek.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Digest/MD5/MD5.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Digest/SHA/SHA.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Byte/Byte.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/CN/CN.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Encode.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/JP/JP.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/KR/KR.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/TW/TW.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Fcntl/Fcntl.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/File/Glob/Glob.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Hash/Util/Util.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/I18N/Langinfo/Langinfo.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/IO/IO.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/List/Util/Util.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/MIME/Base64/Base64.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Opcode/Opcode.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/POSIX/POSIX.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/PerlIO/via/via.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Socket/Socket.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Storable/Storable.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Tie/Hash/NamedCapture/NamedCapture.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Time/Piece/Piece.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Unicode/Normalize/Normalize.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Win32/Win32.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Win32API/File/File.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/Win32CORE/extralibs.ld create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/arybase/arybase.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/attributes/attributes.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/mro/mro.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/re/re.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/threads/shared/shared.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/auto/threads/threads.dll create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/autodie.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Scope/Guard.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Scope/GuardStack.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/Util.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/exception.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/exception/system.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/hints.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/autodie/skip.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/autouse.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/base.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/bigint.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/bignum.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/bigrat.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/blib.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/bytes.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/bytes_heavy.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/charnames.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/constant.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/deprecate.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/diagnostics.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/dumpvar.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/encoding.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/encoding/warnings.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/experimental.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/feature.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/fields.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/filetest.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/if.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/integer.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/less.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/lib.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/locale.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/meta_notation.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/mro.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ok.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/open.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/ops.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/overload.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/overload/numbers.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/overloading.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/parent.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/perl5db.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/perlfaq.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/perllocal.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/re.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/sigtrap.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/sort.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/strict.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/subs.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/threads.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/threads/shared.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Blocks.txt create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/CombiningClass.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Decomposition.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Heavy.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Name.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/Name.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/NamedSequences.txt create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/SpecialCasing.txt create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Age.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bc.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bmg.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bpb.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Bpt.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Cf.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Digit.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Ea.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Fold.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/GCB.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Gc.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Hst.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/InPC.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/InSC.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Isc.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Jg.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Jt.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Lb.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Lc.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Lower.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFCQC.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFDQC.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFKCCF.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFKCQC.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NFKDQC.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Na1.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/NameAlia.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Nt.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Nv.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/PerlDeci.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/SB.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Sc.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Scx.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Tc.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Title.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Uc.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Upper.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/Vo.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/WB.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/_PerlLB.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/_PerlSCX.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/To/_PerlWB.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/UCD.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/NA.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V100.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V11.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V20.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V30.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V31.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V32.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V40.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V41.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V50.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V51.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V52.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V60.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V61.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V70.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V80.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Age/V90.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Alpha/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/AL.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/AN.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/B.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/BN.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/CS.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/EN.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/ES.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/ET.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/L.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/NSM.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/ON.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/R.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bc/WS.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/BidiC/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/BidiM/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Blk/NB.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bpt/C.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bpt/N.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Bpt/O.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CE/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CI/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWCF/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWCM/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWKCF/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWL/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWT/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CWU/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Cased/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/A.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/AL.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/AR.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/ATAR.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/B.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/BR.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/DB.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/NK.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/NR.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/OV.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ccc/VR.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/CompEx/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/DI/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dash/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dep/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dia/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Com.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Enc.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Fin.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Font.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Init.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Iso.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Med.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Nar.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Nb.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/NonCanon.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Sqr.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Sub.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Sup.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Dt/Vert.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/A.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/H.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/N.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/Na.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ea/W.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ext/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/CN.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/EB.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/EX.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/GAZ.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/LV.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/LVT.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/PP.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/SM.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GCB/XX.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/C.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Cf.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Cn.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/L.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/LC.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Ll.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Lm.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Lo.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Lu.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/M.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Mc.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Me.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Mn.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/N.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Nd.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Nl.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/No.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/P.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pc.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pd.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pe.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pf.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Pi.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Po.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Ps.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/S.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Sc.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Sk.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Sm.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/So.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Z.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Gc/Zs.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/GrBase/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Hex/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Hst/NA.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Hyphen/T.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IDC/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/IDS/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Ideo/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/10_0.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/2_0.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/2_1.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/3_0.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/3_1.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/3_2.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/4_0.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/4_1.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/5_0.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/5_1.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/5_2.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_0.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_1.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_2.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/6_3.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/7_0.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/8_0.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/In/9_0.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Bottom.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Left.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/LeftAndR.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/NA.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Overstru.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Right.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/Top.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndBo.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndL2.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndLe.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndRi.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InPC/VisualOr.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Avagraha.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Bindu.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Cantilla.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona2.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona3.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona4.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona5.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consona6.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Consonan.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Invisibl.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Nukta.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Number.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Other.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/PureKill.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Syllable.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/ToneMark.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Virama.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Visarga.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/Vowel.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/VowelDep.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/InSC/VowelInd.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Ain.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Alef.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Beh.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Dal.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/FarsiYeh.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Feh.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Gaf.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Hah.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Kaf.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Lam.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/NoJoinin.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Qaf.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Reh.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Sad.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Seen.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Waw.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jg/Yeh.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/C.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/D.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/R.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/T.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Jt/U.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/AI.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/AL.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/BA.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/BB.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/CJ.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/CL.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/CM.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/EB.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/EX.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/GL.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/ID.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/IN.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/IS.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/NS.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/OP.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/PO.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/PR.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/QU.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/SA.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lb/XX.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Lower/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Math/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFCQC/M.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFCQC/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFDQC/N.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFDQC/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKCQC/N.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKCQC/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKDQC/N.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/NFKDQC/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nt/Di.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nt/None.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nt/Nu.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/0.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/10.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/100.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1000.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/10000.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/11.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/12.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/13.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/14.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/15.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/16.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/17.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/18.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/19.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_16.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_2.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_3.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_4.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/1_8.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/2.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/20.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/200.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/2_3.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/30.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/300.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3_16.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/3_4.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/4.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/40.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/400.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/5.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/50.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/500.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/5000.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/50000.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/6.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/60.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/600.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/7.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/70.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/700.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/8.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/80.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/800.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/9.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/90.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Nv/900.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/PCM/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/PatSyn/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Alnum.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Assigned.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Blank.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Graph.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/PerlWord.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/PosixPun.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Print.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/SpacePer.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Title.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/Word.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/XPosixPu.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlAny.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCh2.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCha.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlFol.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDC.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDS.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlNch.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPat.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPr2.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPro.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlQuo.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/QMark/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/AT.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/CL.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/EX.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/FO.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/LE.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/LO.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/NU.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/SC.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/ST.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/Sp.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/UP.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SB/XX.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/SD/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/STerm/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Arab.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Armn.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Beng.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Cprt.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Cyrl.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Deva.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Dupl.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Geor.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Glag.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gran.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Grek.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Gujr.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Guru.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Han.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Hang.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Hira.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Kana.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Knda.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Latn.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Limb.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Linb.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Mlym.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Mong.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Mult.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Orya.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Sinh.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Syrc.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Taml.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Telu.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Zinh.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Sc/Zyyy.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Adlm.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Arab.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Armn.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Beng.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Bhks.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Bopo.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cakm.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cham.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Copt.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cprt.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Cyrl.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Deva.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Dupl.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Ethi.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Geor.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Glag.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gonm.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gran.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Grek.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Gujr.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Guru.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Han.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hang.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hebr.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hira.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Hmng.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Kana.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Khar.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Khmr.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Knda.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Lana.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Lao.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Latn.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Limb.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Lina.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Linb.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mlym.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mong.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mult.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Mymr.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Orya.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Phlp.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Shrd.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Sind.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Sinh.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Syrc.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tagb.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Takr.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Talu.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Taml.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Telu.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Thaa.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tibt.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Tirh.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Xsux.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Yi.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Zinh.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Zyyy.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Scx/Zzzz.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Term/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/UIdeo/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Upper/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/R.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/Tr.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/Tu.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/Vo/U.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/EX.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/Extend.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/FO.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/HL.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/KA.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/LE.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/MB.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/ML.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/MN.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/NU.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/WB/XX.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/XIDC/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/lib/XIDS/Y.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/unicore/version create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/utf8.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/utf8_heavy.pl create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/vars.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/version.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/version.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/version/Internals.pod create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/version/regex.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/vmsish.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/warnings.pm create mode 100644 systems/texlive/tlnet/tlpkg/tlperl/lib/warnings/register.pm (limited to 'systems/texlive/tlnet/tlpkg/tlperl/lib') diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/.packlist b/systems/texlive/tlnet/tlpkg/tlperl/lib/.packlist new file mode 100644 index 0000000000..6941ee93c9 --- /dev/null +++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/.packlist @@ -0,0 +1,1654 @@ +c:\tlperl\bin/corelist.bat type=file +c:\tlperl\bin/cpan.bat type=file +c:\tlperl\bin/enc2xs.bat type=file +c:\tlperl\bin/encguess.bat type=file +c:\tlperl\bin/h2ph.bat type=file +c:\tlperl\bin/h2xs.bat type=file +c:\tlperl\bin/instmodsh.bat type=file +c:\tlperl\bin/json_pp.bat type=file +c:\tlperl\bin/libnetcfg.bat type=file +c:\tlperl\bin/perl.exe from=c:\tlperl\bin/perl5.28.1.exe type=link +c:\tlperl\bin/perl5.28.1.exe type=file +c:\tlperl\bin/perl528.dll type=file +c:\tlperl\bin/perlbug.bat type=file +c:\tlperl\bin/perldoc.bat type=file +c:\tlperl\bin/perlivp.bat type=file +c:\tlperl\bin/perlthanks.bat from=c:\tlperl\bin/perlbug.bat type=link +c:\tlperl\bin/piconv.bat type=file +c:\tlperl\bin/pl2pm.bat type=file +c:\tlperl\bin/pod2html.bat type=file +c:\tlperl\bin/pod2man.bat type=file +c:\tlperl\bin/pod2text.bat type=file +c:\tlperl\bin/pod2usage.bat type=file +c:\tlperl\bin/podchecker.bat type=file +c:\tlperl\bin/podselect.bat type=file +c:\tlperl\bin/prove.bat type=file +c:\tlperl\bin/ptar.bat type=file +c:\tlperl\bin/ptardiff.bat type=file +c:\tlperl\bin/ptargrep.bat type=file +c:\tlperl\bin/shasum.bat type=file +c:\tlperl\bin/splain.bat type=file +c:\tlperl\bin/xsubpp.bat type=file +c:\tlperl\bin/zipdetails.bat type=file +c:\tlperl\lib/AnyDBM_File.pm type=file +c:\tlperl\lib/App/Cpan.pm type=file +c:\tlperl\lib/App/Prove.pm type=file +c:\tlperl\lib/App/Prove/State.pm type=file +c:\tlperl\lib/App/Prove/State/Result.pm type=file +c:\tlperl\lib/App/Prove/State/Result/Test.pm type=file +c:\tlperl\lib/Archive/Tar.pm type=file +c:\tlperl\lib/Archive/Tar/Constant.pm type=file +c:\tlperl\lib/Archive/Tar/File.pm type=file +c:\tlperl\lib/Attribute/Handlers.pm type=file +c:\tlperl\lib/AutoLoader.pm type=file +c:\tlperl\lib/AutoSplit.pm type=file +c:\tlperl\lib/B.pm type=file +c:\tlperl\lib/B/Concise.pm type=file +c:\tlperl\lib/B/Debug.pm type=file +c:\tlperl\lib/B/Deparse.pm type=file +c:\tlperl\lib/B/Op_private.pm type=file +c:\tlperl\lib/B/Showlex.pm type=file +c:\tlperl\lib/B/Terse.pm type=file +c:\tlperl\lib/B/Xref.pm type=file +c:\tlperl\lib/Benchmark.pm type=file +c:\tlperl\lib/CORE.pod type=file +c:\tlperl\lib/CORE/EXTERN.h type=file +c:\tlperl\lib/CORE/INTERN.h type=file +c:\tlperl\lib/CORE/XSUB.h type=file +c:\tlperl\lib/CORE/arpa/inet.h type=file +c:\tlperl\lib/CORE/av.h type=file +c:\tlperl\lib/CORE/bitcount.h type=file +c:\tlperl\lib/CORE/charclass_invlists.h type=file +c:\tlperl\lib/CORE/config.h type=file +c:\tlperl\lib/CORE/cop.h type=file +c:\tlperl\lib/CORE/cv.h type=file +c:\tlperl\lib/CORE/dirent.h type=file +c:\tlperl\lib/CORE/dosish.h type=file +c:\tlperl\lib/CORE/dquote_inline.h type=file +c:\tlperl\lib/CORE/ebcdic_tables.h type=file +c:\tlperl\lib/CORE/embed.h type=file +c:\tlperl\lib/CORE/embedvar.h type=file +c:\tlperl\lib/CORE/fakesdio.h type=file +c:\tlperl\lib/CORE/feature.h type=file +c:\tlperl\lib/CORE/form.h type=file +c:\tlperl\lib/CORE/git_version.h type=file +c:\tlperl\lib/CORE/gv.h type=file +c:\tlperl\lib/CORE/handy.h type=file +c:\tlperl\lib/CORE/hv.h type=file +c:\tlperl\lib/CORE/hv_func.h type=file +c:\tlperl\lib/CORE/hv_macro.h type=file +c:\tlperl\lib/CORE/inline.h type=file +c:\tlperl\lib/CORE/intrpvar.h type=file +c:\tlperl\lib/CORE/invlist_inline.h type=file +c:\tlperl\lib/CORE/iperlsys.h type=file +c:\tlperl\lib/CORE/keywords.h type=file +c:\tlperl\lib/CORE/l1_char_class_tab.h type=file +c:\tlperl\lib/CORE/libperl528.a type=file +c:\tlperl\lib/CORE/malloc_ctl.h type=file +c:\tlperl\lib/CORE/metaconfig.h type=file +c:\tlperl\lib/CORE/mg.h type=file +c:\tlperl\lib/CORE/mg_data.h type=file +c:\tlperl\lib/CORE/mg_raw.h type=file +c:\tlperl\lib/CORE/mg_vtable.h type=file +c:\tlperl\lib/CORE/mydtrace.h type=file +c:\tlperl\lib/CORE/netdb.h type=file +c:\tlperl\lib/CORE/nostdio.h type=file +c:\tlperl\lib/CORE/op.h type=file +c:\tlperl\lib/CORE/op_reg_common.h type=file +c:\tlperl\lib/CORE/opcode.h type=file +c:\tlperl\lib/CORE/opnames.h type=file +c:\tlperl\lib/CORE/overload.h type=file +c:\tlperl\lib/CORE/pad.h type=file +c:\tlperl\lib/CORE/parser.h type=file +c:\tlperl\lib/CORE/patchlevel.h type=file +c:\tlperl\lib/CORE/perl.h type=file +c:\tlperl\lib/CORE/perl_inc_macro.h type=file +c:\tlperl\lib/CORE/perl_langinfo.h type=file +c:\tlperl\lib/CORE/perlapi.h type=file +c:\tlperl\lib/CORE/perlhost.h type=file +c:\tlperl\lib/CORE/perlio.h type=file +c:\tlperl\lib/CORE/perliol.h type=file +c:\tlperl\lib/CORE/perlsdio.h type=file +c:\tlperl\lib/CORE/perlvars.h type=file +c:\tlperl\lib/CORE/perly.h type=file +c:\tlperl\lib/CORE/pp.h type=file +c:\tlperl\lib/CORE/pp_proto.h type=file +c:\tlperl\lib/CORE/proto.h type=file +c:\tlperl\lib/CORE/reentr.h type=file +c:\tlperl\lib/CORE/regcharclass.h type=file +c:\tlperl\lib/CORE/regcomp.h type=file +c:\tlperl\lib/CORE/regexp.h type=file +c:\tlperl\lib/CORE/regnodes.h type=file +c:\tlperl\lib/CORE/sbox32_hash.h type=file +c:\tlperl\lib/CORE/scope.h type=file +c:\tlperl\lib/CORE/stadtx_hash.h type=file +c:\tlperl\lib/CORE/sv.h type=file +c:\tlperl\lib/CORE/sys/errno2.h type=file +c:\tlperl\lib/CORE/sys/socket.h type=file +c:\tlperl\lib/CORE/thread.h type=file +c:\tlperl\lib/CORE/time64.h type=file +c:\tlperl\lib/CORE/time64_config.h type=file +c:\tlperl\lib/CORE/uconfig.h type=file +c:\tlperl\lib/CORE/uni_keywords.h type=file +c:\tlperl\lib/CORE/unicode_constants.h type=file +c:\tlperl\lib/CORE/unixish.h type=file +c:\tlperl\lib/CORE/utf8.h type=file +c:\tlperl\lib/CORE/utfebcdic.h type=file +c:\tlperl\lib/CORE/util.h type=file +c:\tlperl\lib/CORE/uudmap.h type=file +c:\tlperl\lib/CORE/vdir.h type=file +c:\tlperl\lib/CORE/vmem.h type=file +c:\tlperl\lib/CORE/vutil.h type=file +c:\tlperl\lib/CORE/warnings.h type=file +c:\tlperl\lib/CORE/win32.h type=file +c:\tlperl\lib/CORE/win32iop-o.h type=file +c:\tlperl\lib/CORE/win32iop.h type=file +c:\tlperl\lib/CORE/win32thread.h type=file +c:\tlperl\lib/CORE/wince.h type=file +c:\tlperl\lib/CORE/zaphod32_hash.h type=file +c:\tlperl\lib/CPAN.pm type=file +c:\tlperl\lib/CPAN/API/HOWTO.pod type=file +c:\tlperl\lib/CPAN/Author.pm type=file +c:\tlperl\lib/CPAN/Bundle.pm type=file +c:\tlperl\lib/CPAN/CacheMgr.pm type=file +c:\tlperl\lib/CPAN/Complete.pm type=file +c:\tlperl\lib/CPAN/Debug.pm type=file +c:\tlperl\lib/CPAN/DeferredCode.pm type=file +c:\tlperl\lib/CPAN/Distribution.pm type=file +c:\tlperl\lib/CPAN/Distroprefs.pm type=file +c:\tlperl\lib/CPAN/Distrostatus.pm type=file +c:\tlperl\lib/CPAN/Exception/RecursiveDependency.pm type=file +c:\tlperl\lib/CPAN/Exception/blocked_urllist.pm type=file +c:\tlperl\lib/CPAN/Exception/yaml_not_installed.pm type=file +c:\tlperl\lib/CPAN/Exception/yaml_process_error.pm type=file +c:\tlperl\lib/CPAN/FTP.pm type=file +c:\tlperl\lib/CPAN/FTP/netrc.pm type=file +c:\tlperl\lib/CPAN/FirstTime.pm type=file +c:\tlperl\lib/CPAN/HTTP/Client.pm type=file +c:\tlperl\lib/CPAN/HTTP/Credentials.pm type=file +c:\tlperl\lib/CPAN/HandleConfig.pm type=file +c:\tlperl\lib/CPAN/Index.pm type=file +c:\tlperl\lib/CPAN/InfoObj.pm type=file +c:\tlperl\lib/CPAN/Kwalify.pm type=file +c:\tlperl\lib/CPAN/Kwalify/distroprefs.dd type=file +c:\tlperl\lib/CPAN/Kwalify/distroprefs.yml type=file +c:\tlperl\lib/CPAN/LWP/UserAgent.pm type=file +c:\tlperl\lib/CPAN/Meta.pm type=file +c:\tlperl\lib/CPAN/Meta/Converter.pm type=file +c:\tlperl\lib/CPAN/Meta/Feature.pm type=file +c:\tlperl\lib/CPAN/Meta/History.pm type=file +c:\tlperl\lib/CPAN/Meta/History/Meta_1_0.pod type=file +c:\tlperl\lib/CPAN/Meta/History/Meta_1_1.pod type=file +c:\tlperl\lib/CPAN/Meta/History/Meta_1_2.pod type=file +c:\tlperl\lib/CPAN/Meta/History/Meta_1_3.pod type=file +c:\tlperl\lib/CPAN/Meta/History/Meta_1_4.pod type=file +c:\tlperl\lib/CPAN/Meta/Merge.pm type=file +c:\tlperl\lib/CPAN/Meta/Prereqs.pm type=file +c:\tlperl\lib/CPAN/Meta/Requirements.pm type=file +c:\tlperl\lib/CPAN/Meta/Spec.pm type=file +c:\tlperl\lib/CPAN/Meta/Validator.pm type=file +c:\tlperl\lib/CPAN/Meta/YAML.pm type=file +c:\tlperl\lib/CPAN/Mirrors.pm type=file +c:\tlperl\lib/CPAN/Module.pm type=file +c:\tlperl\lib/CPAN/Nox.pm type=file +c:\tlperl\lib/CPAN/Plugin.pm type=file +c:\tlperl\lib/CPAN/Plugin/Specfile.pm type=file +c:\tlperl\lib/CPAN/Prompt.pm type=file +c:\tlperl\lib/CPAN/Queue.pm type=file +c:\tlperl\lib/CPAN/Shell.pm type=file +c:\tlperl\lib/CPAN/Tarzip.pm type=file +c:\tlperl\lib/CPAN/URL.pm type=file +c:\tlperl\lib/CPAN/Version.pm type=file +c:\tlperl\lib/Carp.pm type=file +c:\tlperl\lib/Carp/Heavy.pm type=file +c:\tlperl\lib/Class/Struct.pm type=file +c:\tlperl\lib/Compress/Raw/Bzip2.pm type=file +c:\tlperl\lib/Compress/Raw/Zlib.pm type=file +c:\tlperl\lib/Compress/Zlib.pm type=file +c:\tlperl\lib/Config.pm type=file +c:\tlperl\lib/Config.pod type=file +c:\tlperl\lib/Config/Extensions.pm type=file +c:\tlperl\lib/Config/Perl/V.pm type=file +c:\tlperl\lib/Config_git.pl type=file +c:\tlperl\lib/Config_heavy.pl type=file +c:\tlperl\lib/Cwd.pm type=file +c:\tlperl\lib/DB.pm type=file +c:\tlperl\lib/DBM_Filter.pm type=file +c:\tlperl\lib/DBM_Filter/compress.pm type=file +c:\tlperl\lib/DBM_Filter/encode.pm type=file +c:\tlperl\lib/DBM_Filter/int32.pm type=file +c:\tlperl\lib/DBM_Filter/null.pm type=file +c:\tlperl\lib/DBM_Filter/utf8.pm type=file +c:\tlperl\lib/Data/Dumper.pm type=file +c:\tlperl\lib/Devel/PPPort.pm type=file +c:\tlperl\lib/Devel/Peek.pm type=file +c:\tlperl\lib/Devel/SelfStubber.pm type=file +c:\tlperl\lib/Digest.pm type=file +c:\tlperl\lib/Digest/MD5.pm type=file +c:\tlperl\lib/Digest/SHA.pm type=file +c:\tlperl\lib/Digest/base.pm type=file +c:\tlperl\lib/Digest/file.pm type=file +c:\tlperl\lib/DirHandle.pm type=file +c:\tlperl\lib/Dumpvalue.pm type=file +c:\tlperl\lib/DynaLoader.pm type=file +c:\tlperl\lib/Encode.pm type=file +c:\tlperl\lib/Encode/Alias.pm type=file +c:\tlperl\lib/Encode/Byte.pm type=file +c:\tlperl\lib/Encode/CJKConstants.pm type=file +c:\tlperl\lib/Encode/CN.pm type=file +c:\tlperl\lib/Encode/CN/HZ.pm type=file +c:\tlperl\lib/Encode/Changes.e2x type=file +c:\tlperl\lib/Encode/Config.pm type=file +c:\tlperl\lib/Encode/ConfigLocal_PM.e2x type=file +c:\tlperl\lib/Encode/EBCDIC.pm type=file +c:\tlperl\lib/Encode/Encoder.pm type=file +c:\tlperl\lib/Encode/Encoding.pm type=file +c:\tlperl\lib/Encode/GSM0338.pm type=file +c:\tlperl\lib/Encode/Guess.pm type=file +c:\tlperl\lib/Encode/JP.pm type=file +c:\tlperl\lib/Encode/JP/H2Z.pm type=file +c:\tlperl\lib/Encode/JP/JIS7.pm type=file +c:\tlperl\lib/Encode/KR.pm type=file +c:\tlperl\lib/Encode/KR/2022_KR.pm type=file +c:\tlperl\lib/Encode/MIME/Header.pm type=file +c:\tlperl\lib/Encode/MIME/Header/ISO_2022_JP.pm type=file +c:\tlperl\lib/Encode/MIME/Name.pm type=file +c:\tlperl\lib/Encode/Makefile_PL.e2x type=file +c:\tlperl\lib/Encode/PerlIO.pod type=file +c:\tlperl\lib/Encode/README.e2x type=file +c:\tlperl\lib/Encode/Supported.pod type=file +c:\tlperl\lib/Encode/Symbol.pm type=file +c:\tlperl\lib/Encode/TW.pm type=file +c:\tlperl\lib/Encode/Unicode.pm type=file +c:\tlperl\lib/Encode/Unicode/UTF7.pm type=file +c:\tlperl\lib/Encode/_PM.e2x type=file +c:\tlperl\lib/Encode/_T.e2x type=file +c:\tlperl\lib/Encode/encode.h type=file +c:\tlperl\lib/English.pm type=file +c:\tlperl\lib/Env.pm type=file +c:\tlperl\lib/Errno.pm type=file +c:\tlperl\lib/Exporter.pm type=file +c:\tlperl\lib/Exporter/Heavy.pm type=file +c:\tlperl\lib/ExtUtils/CBuilder.pm type=file +c:\tlperl\lib/ExtUtils/CBuilder/Base.pm type=file +c:\tlperl\lib/ExtUtils/CBuilder/Platform/Unix.pm type=file +c:\tlperl\lib/ExtUtils/CBuilder/Platform/VMS.pm type=file +c:\tlperl\lib/ExtUtils/CBuilder/Platform/Windows.pm type=file +c:\tlperl\lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm type=file +c:\tlperl\lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm type=file +c:\tlperl\lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm type=file +c:\tlperl\lib/ExtUtils/CBuilder/Platform/aix.pm type=file +c:\tlperl\lib/ExtUtils/CBuilder/Platform/android.pm type=file +c:\tlperl\lib/ExtUtils/CBuilder/Platform/cygwin.pm type=file +c:\tlperl\lib/ExtUtils/CBuilder/Platform/darwin.pm type=file +c:\tlperl\lib/ExtUtils/CBuilder/Platform/dec_osf.pm type=file +c:\tlperl\lib/ExtUtils/CBuilder/Platform/os2.pm type=file +c:\tlperl\lib/ExtUtils/Command.pm type=file +c:\tlperl\lib/ExtUtils/Command/MM.pm type=file +c:\tlperl\lib/ExtUtils/Constant.pm type=file +c:\tlperl\lib/ExtUtils/Constant/Base.pm type=file +c:\tlperl\lib/ExtUtils/Constant/ProxySubs.pm type=file +c:\tlperl\lib/ExtUtils/Constant/Utils.pm type=file +c:\tlperl\lib/ExtUtils/Constant/XS.pm type=file +c:\tlperl\lib/ExtUtils/Embed.pm type=file +c:\tlperl\lib/ExtUtils/Install.pm type=file +c:\tlperl\lib/ExtUtils/Installed.pm type=file +c:\tlperl\lib/ExtUtils/Liblist.pm type=file +c:\tlperl\lib/ExtUtils/Liblist/Kid.pm type=file +c:\tlperl\lib/ExtUtils/MANIFEST.SKIP type=file +c:\tlperl\lib/ExtUtils/MM.pm type=file +c:\tlperl\lib/ExtUtils/MM_AIX.pm type=file +c:\tlperl\lib/ExtUtils/MM_Any.pm type=file +c:\tlperl\lib/ExtUtils/MM_BeOS.pm type=file +c:\tlperl\lib/ExtUtils/MM_Cygwin.pm type=file +c:\tlperl\lib/ExtUtils/MM_DOS.pm type=file +c:\tlperl\lib/ExtUtils/MM_Darwin.pm type=file +c:\tlperl\lib/ExtUtils/MM_MacOS.pm type=file +c:\tlperl\lib/ExtUtils/MM_NW5.pm type=file +c:\tlperl\lib/ExtUtils/MM_OS2.pm type=file +c:\tlperl\lib/ExtUtils/MM_QNX.pm type=file +c:\tlperl\lib/ExtUtils/MM_UWIN.pm type=file +c:\tlperl\lib/ExtUtils/MM_Unix.pm type=file +c:\tlperl\lib/ExtUtils/MM_VMS.pm type=file +c:\tlperl\lib/ExtUtils/MM_VOS.pm type=file +c:\tlperl\lib/ExtUtils/MM_Win32.pm type=file +c:\tlperl\lib/ExtUtils/MM_Win95.pm type=file +c:\tlperl\lib/ExtUtils/MY.pm type=file +c:\tlperl\lib/ExtUtils/MakeMaker.pm type=file +c:\tlperl\lib/ExtUtils/MakeMaker/Config.pm type=file +c:\tlperl\lib/ExtUtils/MakeMaker/FAQ.pod type=file +c:\tlperl\lib/ExtUtils/MakeMaker/Locale.pm type=file +c:\tlperl\lib/ExtUtils/MakeMaker/Tutorial.pod type=file +c:\tlperl\lib/ExtUtils/MakeMaker/version.pm type=file +c:\tlperl\lib/ExtUtils/Manifest.pm type=file +c:\tlperl\lib/ExtUtils/Miniperl.pm type=file +c:\tlperl\lib/ExtUtils/Mkbootstrap.pm type=file +c:\tlperl\lib/ExtUtils/Mksymlists.pm type=file +c:\tlperl\lib/ExtUtils/Packlist.pm type=file +c:\tlperl\lib/ExtUtils/ParseXS.pm type=file +c:\tlperl\lib/ExtUtils/ParseXS.pod type=file +c:\tlperl\lib/ExtUtils/ParseXS/Constants.pm type=file +c:\tlperl\lib/ExtUtils/ParseXS/CountLines.pm type=file +c:\tlperl\lib/ExtUtils/ParseXS/Eval.pm type=file +c:\tlperl\lib/ExtUtils/ParseXS/Utilities.pm type=file +c:\tlperl\lib/ExtUtils/Typemaps.pm type=file +c:\tlperl\lib/ExtUtils/Typemaps/Cmd.pm type=file +c:\tlperl\lib/ExtUtils/Typemaps/InputMap.pm type=file +c:\tlperl\lib/ExtUtils/Typemaps/OutputMap.pm type=file +c:\tlperl\lib/ExtUtils/Typemaps/Type.pm type=file +c:\tlperl\lib/ExtUtils/testlib.pm type=file +c:\tlperl\lib/ExtUtils/typemap type=file +c:\tlperl\lib/ExtUtils/xsubpp type=file +c:\tlperl\lib/Fatal.pm type=file +c:\tlperl\lib/Fcntl.pm type=file +c:\tlperl\lib/File/Basename.pm type=file +c:\tlperl\lib/File/Compare.pm type=file +c:\tlperl\lib/File/Copy.pm type=file +c:\tlperl\lib/File/DosGlob.pm type=file +c:\tlperl\lib/File/Fetch.pm type=file +c:\tlperl\lib/File/Find.pm type=file +c:\tlperl\lib/File/Glob.pm type=file +c:\tlperl\lib/File/GlobMapper.pm type=file +c:\tlperl\lib/File/Path.pm type=file +c:\tlperl\lib/File/Spec.pm type=file +c:\tlperl\lib/File/Spec/AmigaOS.pm type=file +c:\tlperl\lib/File/Spec/Cygwin.pm type=file +c:\tlperl\lib/File/Spec/Epoc.pm type=file +c:\tlperl\lib/File/Spec/Functions.pm type=file +c:\tlperl\lib/File/Spec/Mac.pm type=file +c:\tlperl\lib/File/Spec/OS2.pm type=file +c:\tlperl\lib/File/Spec/Unix.pm type=file +c:\tlperl\lib/File/Spec/VMS.pm type=file +c:\tlperl\lib/File/Spec/Win32.pm type=file +c:\tlperl\lib/File/Temp.pm type=file +c:\tlperl\lib/File/stat.pm type=file +c:\tlperl\lib/FileCache.pm type=file +c:\tlperl\lib/FileHandle.pm type=file +c:\tlperl\lib/Filter/Simple.pm type=file +c:\tlperl\lib/Filter/Util/Call.pm type=file +c:\tlperl\lib/FindBin.pm type=file +c:\tlperl\lib/Getopt/Long.pm type=file +c:\tlperl\lib/Getopt/Std.pm type=file +c:\tlperl\lib/HTTP/Tiny.pm type=file +c:\tlperl\lib/Hash/Util.pm type=file +c:\tlperl\lib/Hash/Util/FieldHash.pm type=file +c:\tlperl\lib/I18N/Collate.pm type=file +c:\tlperl\lib/I18N/LangTags.pm type=file +c:\tlperl\lib/I18N/LangTags/Detect.pm type=file +c:\tlperl\lib/I18N/LangTags/List.pm type=file +c:\tlperl\lib/I18N/Langinfo.pm type=file +c:\tlperl\lib/IO.pm type=file +c:\tlperl\lib/IO/Compress/Adapter/Bzip2.pm type=file +c:\tlperl\lib/IO/Compress/Adapter/Deflate.pm type=file +c:\tlperl\lib/IO/Compress/Adapter/Identity.pm type=file +c:\tlperl\lib/IO/Compress/Base.pm type=file +c:\tlperl\lib/IO/Compress/Base/Common.pm type=file +c:\tlperl\lib/IO/Compress/Bzip2.pm type=file +c:\tlperl\lib/IO/Compress/Deflate.pm type=file +c:\tlperl\lib/IO/Compress/FAQ.pod type=file +c:\tlperl\lib/IO/Compress/Gzip.pm type=file +c:\tlperl\lib/IO/Compress/Gzip/Constants.pm type=file +c:\tlperl\lib/IO/Compress/RawDeflate.pm type=file +c:\tlperl\lib/IO/Compress/Zip.pm type=file +c:\tlperl\lib/IO/Compress/Zip/Constants.pm type=file +c:\tlperl\lib/IO/Compress/Zlib/Constants.pm type=file +c:\tlperl\lib/IO/Compress/Zlib/Extra.pm type=file +c:\tlperl\lib/IO/Dir.pm type=file +c:\tlperl\lib/IO/File.pm type=file +c:\tlperl\lib/IO/Handle.pm type=file +c:\tlperl\lib/IO/Pipe.pm type=file +c:\tlperl\lib/IO/Poll.pm type=file +c:\tlperl\lib/IO/Seekable.pm type=file +c:\tlperl\lib/IO/Select.pm type=file +c:\tlperl\lib/IO/Socket.pm type=file +c:\tlperl\lib/IO/Socket/INET.pm type=file +c:\tlperl\lib/IO/Socket/IP.pm type=file +c:\tlperl\lib/IO/Socket/UNIX.pm type=file +c:\tlperl\lib/IO/Uncompress/Adapter/Bunzip2.pm type=file +c:\tlperl\lib/IO/Uncompress/Adapter/Identity.pm type=file +c:\tlperl\lib/IO/Uncompress/Adapter/Inflate.pm type=file +c:\tlperl\lib/IO/Uncompress/AnyInflate.pm type=file +c:\tlperl\lib/IO/Uncompress/AnyUncompress.pm type=file +c:\tlperl\lib/IO/Uncompress/Base.pm type=file +c:\tlperl\lib/IO/Uncompress/Bunzip2.pm type=file +c:\tlperl\lib/IO/Uncompress/Gunzip.pm type=file +c:\tlperl\lib/IO/Uncompress/Inflate.pm type=file +c:\tlperl\lib/IO/Uncompress/RawInflate.pm type=file +c:\tlperl\lib/IO/Uncompress/Unzip.pm type=file +c:\tlperl\lib/IO/Zlib.pm type=file +c:\tlperl\lib/IPC/Cmd.pm type=file +c:\tlperl\lib/IPC/Open2.pm type=file +c:\tlperl\lib/IPC/Open3.pm type=file +c:\tlperl\lib/Internals.pod type=file +c:\tlperl\lib/JSON/PP.pm type=file +c:\tlperl\lib/JSON/PP/Boolean.pm type=file +c:\tlperl\lib/List/Util.pm type=file +c:\tlperl\lib/List/Util/XS.pm type=file +c:\tlperl\lib/Locale/Codes.pm type=file +c:\tlperl\lib/Locale/Codes.pod type=file +c:\tlperl\lib/Locale/Codes/Changes.pod type=file +c:\tlperl\lib/Locale/Codes/Constants.pm type=file +c:\tlperl\lib/Locale/Codes/Country.pm type=file +c:\tlperl\lib/Locale/Codes/Country.pod type=file +c:\tlperl\lib/Locale/Codes/Country_Codes.pm type=file +c:\tlperl\lib/Locale/Codes/Country_Retired.pm type=file +c:\tlperl\lib/Locale/Codes/Currency.pm type=file +c:\tlperl\lib/Locale/Codes/Currency.pod type=file +c:\tlperl\lib/Locale/Codes/Currency_Codes.pm type=file +c:\tlperl\lib/Locale/Codes/Currency_Retired.pm type=file +c:\tlperl\lib/Locale/Codes/LangExt.pm type=file +c:\tlperl\lib/Locale/Codes/LangExt.pod type=file +c:\tlperl\lib/Locale/Codes/LangExt_Codes.pm type=file +c:\tlperl\lib/Locale/Codes/LangExt_Retired.pm type=file +c:\tlperl\lib/Locale/Codes/LangFam.pm type=file +c:\tlperl\lib/Locale/Codes/LangFam.pod type=file +c:\tlperl\lib/Locale/Codes/LangFam_Codes.pm type=file +c:\tlperl\lib/Locale/Codes/LangFam_Retired.pm type=file +c:\tlperl\lib/Locale/Codes/LangVar.pm type=file +c:\tlperl\lib/Locale/Codes/LangVar.pod type=file +c:\tlperl\lib/Locale/Codes/LangVar_Codes.pm type=file +c:\tlperl\lib/Locale/Codes/LangVar_Retired.pm type=file +c:\tlperl\lib/Locale/Codes/Language.pm type=file +c:\tlperl\lib/Locale/Codes/Language.pod type=file +c:\tlperl\lib/Locale/Codes/Language_Codes.pm type=file +c:\tlperl\lib/Locale/Codes/Language_Retired.pm type=file +c:\tlperl\lib/Locale/Codes/Script.pm type=file +c:\tlperl\lib/Locale/Codes/Script.pod type=file +c:\tlperl\lib/Locale/Codes/Script_Codes.pm type=file +c:\tlperl\lib/Locale/Codes/Script_Retired.pm type=file +c:\tlperl\lib/Locale/Codes/Types.pod type=file +c:\tlperl\lib/Locale/Country.pm type=file +c:\tlperl\lib/Locale/Country.pod type=file +c:\tlperl\lib/Locale/Currency.pm type=file +c:\tlperl\lib/Locale/Currency.pod type=file +c:\tlperl\lib/Locale/Language.pm type=file +c:\tlperl\lib/Locale/Language.pod type=file +c:\tlperl\lib/Locale/Maketext.pm type=file +c:\tlperl\lib/Locale/Maketext.pod type=file +c:\tlperl\lib/Locale/Maketext/Cookbook.pod type=file +c:\tlperl\lib/Locale/Maketext/Guts.pm type=file +c:\tlperl\lib/Locale/Maketext/GutsLoader.pm type=file +c:\tlperl\lib/Locale/Maketext/Simple.pm type=file +c:\tlperl\lib/Locale/Maketext/TPJ13.pod type=file +c:\tlperl\lib/Locale/Script.pm type=file +c:\tlperl\lib/Locale/Script.pod type=file +c:\tlperl\lib/MIME/Base64.pm type=file +c:\tlperl\lib/MIME/QuotedPrint.pm type=file +c:\tlperl\lib/Math/BigFloat.pm type=file +c:\tlperl\lib/Math/BigFloat/Trace.pm type=file +c:\tlperl\lib/Math/BigInt.pm type=file +c:\tlperl\lib/Math/BigInt/Calc.pm type=file +c:\tlperl\lib/Math/BigInt/CalcEmu.pm type=file +c:\tlperl\lib/Math/BigInt/FastCalc.pm type=file +c:\tlperl\lib/Math/BigInt/Lib.pm type=file +c:\tlperl\lib/Math/BigInt/Trace.pm type=file +c:\tlperl\lib/Math/BigRat.pm type=file +c:\tlperl\lib/Math/Complex.pm type=file +c:\tlperl\lib/Math/Trig.pm type=file +c:\tlperl\lib/Memoize.pm type=file +c:\tlperl\lib/Memoize/AnyDBM_File.pm type=file +c:\tlperl\lib/Memoize/Expire.pm type=file +c:\tlperl\lib/Memoize/ExpireFile.pm type=file +c:\tlperl\lib/Memoize/ExpireTest.pm type=file +c:\tlperl\lib/Memoize/NDBM_File.pm type=file +c:\tlperl\lib/Memoize/SDBM_File.pm type=file +c:\tlperl\lib/Memoize/Storable.pm type=file +c:\tlperl\lib/Module/CoreList.pm type=file +c:\tlperl\lib/Module/CoreList.pod type=file +c:\tlperl\lib/Module/CoreList/Utils.pm type=file +c:\tlperl\lib/Module/Load.pm type=file +c:\tlperl\lib/Module/Load/Conditional.pm type=file +c:\tlperl\lib/Module/Loaded.pm type=file +c:\tlperl\lib/Module/Metadata.pm type=file +c:\tlperl\lib/NEXT.pm type=file +c:\tlperl\lib/Net/Cmd.pm type=file +c:\tlperl\lib/Net/Config.pm type=file +c:\tlperl\lib/Net/Domain.pm type=file +c:\tlperl\lib/Net/FTP.pm type=file +c:\tlperl\lib/Net/FTP/A.pm type=file +c:\tlperl\lib/Net/FTP/E.pm type=file +c:\tlperl\lib/Net/FTP/I.pm type=file +c:\tlperl\lib/Net/FTP/L.pm type=file +c:\tlperl\lib/Net/FTP/dataconn.pm type=file +c:\tlperl\lib/Net/NNTP.pm type=file +c:\tlperl\lib/Net/Netrc.pm type=file +c:\tlperl\lib/Net/POP3.pm type=file +c:\tlperl\lib/Net/Ping.pm type=file +c:\tlperl\lib/Net/SMTP.pm type=file +c:\tlperl\lib/Net/Time.pm type=file +c:\tlperl\lib/Net/hostent.pm type=file +c:\tlperl\lib/Net/libnetFAQ.pod type=file +c:\tlperl\lib/Net/netent.pm type=file +c:\tlperl\lib/Net/protoent.pm type=file +c:\tlperl\lib/Net/servent.pm type=file +c:\tlperl\lib/O.pm type=file +c:\tlperl\lib/Opcode.pm type=file +c:\tlperl\lib/POSIX.pm type=file +c:\tlperl\lib/POSIX.pod type=file +c:\tlperl\lib/Params/Check.pm type=file +c:\tlperl\lib/Parse/CPAN/Meta.pm type=file +c:\tlperl\lib/Perl/OSType.pm type=file +c:\tlperl\lib/PerlIO.pm type=file +c:\tlperl\lib/PerlIO/encoding.pm type=file +c:\tlperl\lib/PerlIO/mmap.pm type=file +c:\tlperl\lib/PerlIO/scalar.pm type=file +c:\tlperl\lib/PerlIO/via.pm type=file +c:\tlperl\lib/PerlIO/via/QuotedPrint.pm type=file +c:\tlperl\lib/Pod/Checker.pm type=file +c:\tlperl\lib/Pod/Escapes.pm type=file +c:\tlperl\lib/Pod/Find.pm type=file +c:\tlperl\lib/Pod/Functions.pm type=file +c:\tlperl\lib/Pod/Html.pm type=file +c:\tlperl\lib/Pod/InputObjects.pm type=file +c:\tlperl\lib/Pod/Man.pm type=file +c:\tlperl\lib/Pod/ParseLink.pm type=file +c:\tlperl\lib/Pod/ParseUtils.pm type=file +c:\tlperl\lib/Pod/Parser.pm type=file +c:\tlperl\lib/Pod/Perldoc.pm type=file +c:\tlperl\lib/Pod/Perldoc/BaseTo.pm type=file +c:\tlperl\lib/Pod/Perldoc/GetOptsOO.pm type=file +c:\tlperl\lib/Pod/Perldoc/ToANSI.pm type=file +c:\tlperl\lib/Pod/Perldoc/ToChecker.pm type=file +c:\tlperl\lib/Pod/Perldoc/ToMan.pm type=file +c:\tlperl\lib/Pod/Perldoc/ToNroff.pm type=file +c:\tlperl\lib/Pod/Perldoc/ToPod.pm type=file +c:\tlperl\lib/Pod/Perldoc/ToRtf.pm type=file +c:\tlperl\lib/Pod/Perldoc/ToTerm.pm type=file +c:\tlperl\lib/Pod/Perldoc/ToText.pm type=file +c:\tlperl\lib/Pod/Perldoc/ToTk.pm type=file +c:\tlperl\lib/Pod/Perldoc/ToXml.pm type=file +c:\tlperl\lib/Pod/PlainText.pm type=file +c:\tlperl\lib/Pod/Select.pm type=file +c:\tlperl\lib/Pod/Simple.pm type=file +c:\tlperl\lib/Pod/Simple.pod type=file +c:\tlperl\lib/Pod/Simple/BlackBox.pm type=file +c:\tlperl\lib/Pod/Simple/Checker.pm type=file +c:\tlperl\lib/Pod/Simple/Debug.pm type=file +c:\tlperl\lib/Pod/Simple/DumpAsText.pm type=file +c:\tlperl\lib/Pod/Simple/DumpAsXML.pm type=file +c:\tlperl\lib/Pod/Simple/HTML.pm type=file +c:\tlperl\lib/Pod/Simple/HTMLBatch.pm type=file +c:\tlperl\lib/Pod/Simple/HTMLLegacy.pm type=file +c:\tlperl\lib/Pod/Simple/LinkSection.pm type=file +c:\tlperl\lib/Pod/Simple/Methody.pm type=file +c:\tlperl\lib/Pod/Simple/Progress.pm type=file +c:\tlperl\lib/Pod/Simple/PullParser.pm type=file +c:\tlperl\lib/Pod/Simple/PullParserEndToken.pm type=file +c:\tlperl\lib/Pod/Simple/PullParserStartToken.pm type=file +c:\tlperl\lib/Pod/Simple/PullParserTextToken.pm type=file +c:\tlperl\lib/Pod/Simple/PullParserToken.pm type=file +c:\tlperl\lib/Pod/Simple/RTF.pm type=file +c:\tlperl\lib/Pod/Simple/Search.pm type=file +c:\tlperl\lib/Pod/Simple/SimpleTree.pm type=file +c:\tlperl\lib/Pod/Simple/Subclassing.pod type=file +c:\tlperl\lib/Pod/Simple/Text.pm type=file +c:\tlperl\lib/Pod/Simple/TextContent.pm type=file +c:\tlperl\lib/Pod/Simple/TiedOutFH.pm type=file +c:\tlperl\lib/Pod/Simple/Transcode.pm type=file +c:\tlperl\lib/Pod/Simple/TranscodeDumb.pm type=file +c:\tlperl\lib/Pod/Simple/TranscodeSmart.pm type=file +c:\tlperl\lib/Pod/Simple/XHTML.pm type=file +c:\tlperl\lib/Pod/Simple/XMLOutStream.pm type=file +c:\tlperl\lib/Pod/Text.pm type=file +c:\tlperl\lib/Pod/Text/Color.pm type=file +c:\tlperl\lib/Pod/Text/Overstrike.pm type=file +c:\tlperl\lib/Pod/Text/Termcap.pm type=file +c:\tlperl\lib/Pod/Usage.pm type=file +c:\tlperl\lib/SDBM_File.pm type=file +c:\tlperl\lib/Safe.pm type=file +c:\tlperl\lib/Scalar/Util.pm type=file +c:\tlperl\lib/Search/Dict.pm type=file +c:\tlperl\lib/SelectSaver.pm type=file +c:\tlperl\lib/SelfLoader.pm type=file +c:\tlperl\lib/Socket.pm type=file +c:\tlperl\lib/Storable.pm type=file +c:\tlperl\lib/Storable/Limit.pm type=file +c:\tlperl\lib/Sub/Util.pm type=file +c:\tlperl\lib/Symbol.pm type=file +c:\tlperl\lib/Sys/Hostname.pm type=file +c:\tlperl\lib/TAP/Base.pm type=file +c:\tlperl\lib/TAP/Formatter/Base.pm type=file +c:\tlperl\lib/TAP/Formatter/Color.pm type=file +c:\tlperl\lib/TAP/Formatter/Console.pm type=file +c:\tlperl\lib/TAP/Formatter/Console/ParallelSession.pm type=file +c:\tlperl\lib/TAP/Formatter/Console/Session.pm type=file +c:\tlperl\lib/TAP/Formatter/File.pm type=file +c:\tlperl\lib/TAP/Formatter/File/Session.pm type=file +c:\tlperl\lib/TAP/Formatter/Session.pm type=file +c:\tlperl\lib/TAP/Harness.pm type=file +c:\tlperl\lib/TAP/Harness/Beyond.pod type=file +c:\tlperl\lib/TAP/Harness/Env.pm type=file +c:\tlperl\lib/TAP/Object.pm type=file +c:\tlperl\lib/TAP/Parser.pm type=file +c:\tlperl\lib/TAP/Parser/Aggregator.pm type=file +c:\tlperl\lib/TAP/Parser/Grammar.pm type=file +c:\tlperl\lib/TAP/Parser/Iterator.pm type=file +c:\tlperl\lib/TAP/Parser/Iterator/Array.pm type=file +c:\tlperl\lib/TAP/Parser/Iterator/Process.pm type=file +c:\tlperl\lib/TAP/Parser/Iterator/Stream.pm type=file +c:\tlperl\lib/TAP/Parser/IteratorFactory.pm type=file +c:\tlperl\lib/TAP/Parser/Multiplexer.pm type=file +c:\tlperl\lib/TAP/Parser/Result.pm type=file +c:\tlperl\lib/TAP/Parser/Result/Bailout.pm type=file +c:\tlperl\lib/TAP/Parser/Result/Comment.pm type=file +c:\tlperl\lib/TAP/Parser/Result/Plan.pm type=file +c:\tlperl\lib/TAP/Parser/Result/Pragma.pm type=file +c:\tlperl\lib/TAP/Parser/Result/Test.pm type=file +c:\tlperl\lib/TAP/Parser/Result/Unknown.pm type=file +c:\tlperl\lib/TAP/Parser/Result/Version.pm type=file +c:\tlperl\lib/TAP/Parser/Result/YAML.pm type=file +c:\tlperl\lib/TAP/Parser/ResultFactory.pm type=file +c:\tlperl\lib/TAP/Parser/Scheduler.pm type=file +c:\tlperl\lib/TAP/Parser/Scheduler/Job.pm type=file +c:\tlperl\lib/TAP/Parser/Scheduler/Spinner.pm type=file +c:\tlperl\lib/TAP/Parser/Source.pm type=file +c:\tlperl\lib/TAP/Parser/SourceHandler.pm type=file +c:\tlperl\lib/TAP/Parser/SourceHandler/Executable.pm type=file +c:\tlperl\lib/TAP/Parser/SourceHandler/File.pm type=file +c:\tlperl\lib/TAP/Parser/SourceHandler/Handle.pm type=file +c:\tlperl\lib/TAP/Parser/SourceHandler/Perl.pm type=file +c:\tlperl\lib/TAP/Parser/SourceHandler/RawTAP.pm type=file +c:\tlperl\lib/TAP/Parser/YAMLish/Reader.pm type=file +c:\tlperl\lib/TAP/Parser/YAMLish/Writer.pm type=file +c:\tlperl\lib/Term/ANSIColor.pm type=file +c:\tlperl\lib/Term/Cap.pm type=file +c:\tlperl\lib/Term/Complete.pm type=file +c:\tlperl\lib/Term/ReadLine.pm type=file +c:\tlperl\lib/Test.pm type=file +c:\tlperl\lib/Test/Builder.pm type=file +c:\tlperl\lib/Test/Builder/Formatter.pm type=file +c:\tlperl\lib/Test/Builder/IO/Scalar.pm type=file +c:\tlperl\lib/Test/Builder/Module.pm type=file +c:\tlperl\lib/Test/Builder/Tester.pm type=file +c:\tlperl\lib/Test/Builder/Tester/Color.pm type=file +c:\tlperl\lib/Test/Builder/TodoDiag.pm type=file +c:\tlperl\lib/Test/Harness.pm type=file +c:\tlperl\lib/Test/More.pm type=file +c:\tlperl\lib/Test/Simple.pm type=file +c:\tlperl\lib/Test/Tester.pm type=file +c:\tlperl\lib/Test/Tester/Capture.pm type=file +c:\tlperl\lib/Test/Tester/CaptureRunner.pm type=file +c:\tlperl\lib/Test/Tester/Delegate.pm type=file +c:\tlperl\lib/Test/Tutorial.pod type=file +c:\tlperl\lib/Test/use/ok.pm type=file +c:\tlperl\lib/Test2.pm type=file +c:\tlperl\lib/Test2/API.pm type=file +c:\tlperl\lib/Test2/API/Breakage.pm type=file +c:\tlperl\lib/Test2/API/Context.pm type=file +c:\tlperl\lib/Test2/API/Instance.pm type=file +c:\tlperl\lib/Test2/API/Stack.pm type=file +c:\tlperl\lib/Test2/Event.pm type=file +c:\tlperl\lib/Test2/Event/Bail.pm type=file +c:\tlperl\lib/Test2/Event/Diag.pm type=file +c:\tlperl\lib/Test2/Event/Encoding.pm type=file +c:\tlperl\lib/Test2/Event/Exception.pm type=file +c:\tlperl\lib/Test2/Event/Fail.pm type=file +c:\tlperl\lib/Test2/Event/Generic.pm type=file +c:\tlperl\lib/Test2/Event/Note.pm type=file +c:\tlperl\lib/Test2/Event/Ok.pm type=file +c:\tlperl\lib/Test2/Event/Pass.pm type=file +c:\tlperl\lib/Test2/Event/Plan.pm type=file +c:\tlperl\lib/Test2/Event/Skip.pm type=file +c:\tlperl\lib/Test2/Event/Subtest.pm type=file +c:\tlperl\lib/Test2/Event/TAP/Version.pm type=file +c:\tlperl\lib/Test2/Event/V2.pm type=file +c:\tlperl\lib/Test2/Event/Waiting.pm type=file +c:\tlperl\lib/Test2/EventFacet.pm type=file +c:\tlperl\lib/Test2/EventFacet/About.pm type=file +c:\tlperl\lib/Test2/EventFacet/Amnesty.pm type=file +c:\tlperl\lib/Test2/EventFacet/Assert.pm type=file +c:\tlperl\lib/Test2/EventFacet/Control.pm type=file +c:\tlperl\lib/Test2/EventFacet/Error.pm type=file +c:\tlperl\lib/Test2/EventFacet/Hub.pm type=file +c:\tlperl\lib/Test2/EventFacet/Info.pm type=file +c:\tlperl\lib/Test2/EventFacet/Meta.pm type=file +c:\tlperl\lib/Test2/EventFacet/Parent.pm type=file +c:\tlperl\lib/Test2/EventFacet/Plan.pm type=file +c:\tlperl\lib/Test2/EventFacet/Render.pm type=file +c:\tlperl\lib/Test2/EventFacet/Trace.pm type=file +c:\tlperl\lib/Test2/Formatter.pm type=file +c:\tlperl\lib/Test2/Formatter/TAP.pm type=file +c:\tlperl\lib/Test2/Hub.pm type=file +c:\tlperl\lib/Test2/Hub/Interceptor.pm type=file +c:\tlperl\lib/Test2/Hub/Interceptor/Terminator.pm type=file +c:\tlperl\lib/Test2/Hub/Subtest.pm type=file +c:\tlperl\lib/Test2/IPC.pm type=file +c:\tlperl\lib/Test2/IPC/Driver.pm type=file +c:\tlperl\lib/Test2/IPC/Driver/Files.pm type=file +c:\tlperl\lib/Test2/Tools/Tiny.pm type=file +c:\tlperl\lib/Test2/Transition.pod type=file +c:\tlperl\lib/Test2/Util.pm type=file +c:\tlperl\lib/Test2/Util/ExternalMeta.pm type=file +c:\tlperl\lib/Test2/Util/Facets2Legacy.pm type=file +c:\tlperl\lib/Test2/Util/HashBase.pm type=file +c:\tlperl\lib/Test2/Util/Trace.pm type=file +c:\tlperl\lib/Text/Abbrev.pm type=file +c:\tlperl\lib/Text/Balanced.pm type=file +c:\tlperl\lib/Text/ParseWords.pm type=file +c:\tlperl\lib/Text/Tabs.pm type=file +c:\tlperl\lib/Text/Wrap.pm type=file +c:\tlperl\lib/Thread.pm type=file +c:\tlperl\lib/Thread/Queue.pm type=file +c:\tlperl\lib/Thread/Semaphore.pm type=file +c:\tlperl\lib/Tie/Array.pm type=file +c:\tlperl\lib/Tie/File.pm type=file +c:\tlperl\lib/Tie/Handle.pm type=file +c:\tlperl\lib/Tie/Hash.pm type=file +c:\tlperl\lib/Tie/Hash/NamedCapture.pm type=file +c:\tlperl\lib/Tie/Memoize.pm type=file +c:\tlperl\lib/Tie/RefHash.pm type=file +c:\tlperl\lib/Tie/Scalar.pm type=file +c:\tlperl\lib/Tie/StdHandle.pm type=file +c:\tlperl\lib/Tie/SubstrHash.pm type=file +c:\tlperl\lib/Time/HiRes.pm type=file +c:\tlperl\lib/Time/Local.pm type=file +c:\tlperl\lib/Time/Piece.pm type=file +c:\tlperl\lib/Time/Seconds.pm type=file +c:\tlperl\lib/Time/gmtime.pm type=file +c:\tlperl\lib/Time/localtime.pm type=file +c:\tlperl\lib/Time/tm.pm type=file +c:\tlperl\lib/UNIVERSAL.pm type=file +c:\tlperl\lib/Unicode/Collate.pm type=file +c:\tlperl\lib/Unicode/Collate/CJK/Big5.pm type=file +c:\tlperl\lib/Unicode/Collate/CJK/GB2312.pm type=file +c:\tlperl\lib/Unicode/Collate/CJK/JISX0208.pm type=file +c:\tlperl\lib/Unicode/Collate/CJK/Korean.pm type=file +c:\tlperl\lib/Unicode/Collate/CJK/Pinyin.pm type=file +c:\tlperl\lib/Unicode/Collate/CJK/Stroke.pm type=file +c:\tlperl\lib/Unicode/Collate/CJK/Zhuyin.pm type=file +c:\tlperl\lib/Unicode/Collate/Locale.pm type=file +c:\tlperl\lib/Unicode/Collate/Locale/af.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/ar.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/as.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/az.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/be.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/bn.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/ca.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/cs.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/cy.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/da.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/de_at_ph.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/de_phone.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/dsb.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/ee.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/eo.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/es.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/es_trad.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/et.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/fa.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/fi.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/fi_phone.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/fil.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/fo.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/fr_ca.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/gu.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/ha.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/haw.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/he.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/hi.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/hr.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/hu.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/hy.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/ig.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/is.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/ja.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/kk.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/kl.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/kn.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/ko.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/kok.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/lkt.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/ln.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/lt.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/lv.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/mk.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/ml.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/mr.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/mt.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/nb.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/nn.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/nso.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/om.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/or.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/pa.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/pl.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/ro.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/sa.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/se.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/si.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/si_dict.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/sk.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/sl.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/sq.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/sr.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/sv.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/sv_refo.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/ta.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/te.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/th.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/tn.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/to.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/tr.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/ug_cyrl.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/uk.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/ur.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/vi.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/vo.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/wae.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/wo.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/yo.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/zh.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/zh_big5.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/zh_gb.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/zh_pin.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/zh_strk.pl type=file +c:\tlperl\lib/Unicode/Collate/Locale/zh_zhu.pl type=file +c:\tlperl\lib/Unicode/Collate/allkeys.txt type=file +c:\tlperl\lib/Unicode/Collate/keys.txt type=file +c:\tlperl\lib/Unicode/Normalize.pm type=file +c:\tlperl\lib/Unicode/UCD.pm type=file +c:\tlperl\lib/User/grent.pm type=file +c:\tlperl\lib/User/pwent.pm type=file +c:\tlperl\lib/Win32.pm type=file +c:\tlperl\lib/Win32API/File.pm type=file +c:\tlperl\lib/Win32API/File/cFile.pc type=file +c:\tlperl\lib/Win32CORE.pm type=file +c:\tlperl\lib/XSLoader.pm type=file +c:\tlperl\lib/_charnames.pm type=file +c:\tlperl\lib/arybase.pm type=file +c:\tlperl\lib/attributes.pm type=file +c:\tlperl\lib/auto/B/B.dll type=file +c:\tlperl\lib/auto/Compress/Raw/Bzip2/Bzip2.dll type=file +c:\tlperl\lib/auto/Compress/Raw/Zlib/Zlib.dll type=file +c:\tlperl\lib/auto/Cwd/Cwd.dll type=file +c:\tlperl\lib/auto/Data/Dumper/Dumper.dll type=file +c:\tlperl\lib/auto/Devel/Peek/Peek.dll type=file +c:\tlperl\lib/auto/Digest/MD5/MD5.dll type=file +c:\tlperl\lib/auto/Digest/SHA/SHA.dll type=file +c:\tlperl\lib/auto/Encode/Byte/Byte.dll type=file +c:\tlperl\lib/auto/Encode/CN/CN.dll type=file +c:\tlperl\lib/auto/Encode/EBCDIC/EBCDIC.dll type=file +c:\tlperl\lib/auto/Encode/Encode.dll type=file +c:\tlperl\lib/auto/Encode/JP/JP.dll type=file +c:\tlperl\lib/auto/Encode/KR/KR.dll type=file +c:\tlperl\lib/auto/Encode/Symbol/Symbol.dll type=file +c:\tlperl\lib/auto/Encode/TW/TW.dll type=file +c:\tlperl\lib/auto/Encode/Unicode/Unicode.dll type=file +c:\tlperl\lib/auto/Fcntl/Fcntl.dll type=file +c:\tlperl\lib/auto/File/DosGlob/DosGlob.dll type=file +c:\tlperl\lib/auto/File/Glob/Glob.dll type=file +c:\tlperl\lib/auto/Filter/Util/Call/Call.dll type=file +c:\tlperl\lib/auto/Hash/Util/FieldHash/FieldHash.dll type=file +c:\tlperl\lib/auto/Hash/Util/Util.dll type=file +c:\tlperl\lib/auto/I18N/Langinfo/Langinfo.dll type=file +c:\tlperl\lib/auto/IO/IO.dll type=file +c:\tlperl\lib/auto/List/Util/Util.dll type=file +c:\tlperl\lib/auto/MIME/Base64/Base64.dll type=file +c:\tlperl\lib/auto/Math/BigInt/FastCalc/FastCalc.dll type=file +c:\tlperl\lib/auto/Opcode/Opcode.dll type=file +c:\tlperl\lib/auto/POSIX/POSIX.dll type=file +c:\tlperl\lib/auto/PerlIO/encoding/encoding.dll type=file +c:\tlperl\lib/auto/PerlIO/mmap/mmap.dll type=file +c:\tlperl\lib/auto/PerlIO/scalar/scalar.dll type=file +c:\tlperl\lib/auto/PerlIO/via/via.dll type=file +c:\tlperl\lib/auto/SDBM_File/SDBM_File.dll type=file +c:\tlperl\lib/auto/Socket/Socket.dll type=file +c:\tlperl\lib/auto/Storable/Storable.dll type=file +c:\tlperl\lib/auto/Sys/Hostname/Hostname.dll type=file +c:\tlperl\lib/auto/Tie/Hash/NamedCapture/NamedCapture.dll type=file +c:\tlperl\lib/auto/Time/HiRes/HiRes.dll type=file +c:\tlperl\lib/auto/Time/Piece/Piece.dll type=file +c:\tlperl\lib/auto/Unicode/Collate/Collate.dll type=file +c:\tlperl\lib/auto/Unicode/Normalize/Normalize.dll type=file +c:\tlperl\lib/auto/Win32/Win32.dll type=file +c:\tlperl\lib/auto/Win32API/File/File.dll type=file +c:\tlperl\lib/auto/Win32CORE/extralibs.ld type=file +c:\tlperl\lib/auto/arybase/arybase.dll type=file +c:\tlperl\lib/auto/attributes/attributes.dll type=file +c:\tlperl\lib/auto/mro/mro.dll type=file +c:\tlperl\lib/auto/re/re.dll type=file +c:\tlperl\lib/auto/threads/shared/shared.dll type=file +c:\tlperl\lib/auto/threads/threads.dll type=file +c:\tlperl\lib/autodie.pm type=file +c:\tlperl\lib/autodie/Scope/Guard.pm type=file +c:\tlperl\lib/autodie/Scope/GuardStack.pm type=file +c:\tlperl\lib/autodie/Util.pm type=file +c:\tlperl\lib/autodie/exception.pm type=file +c:\tlperl\lib/autodie/exception/system.pm type=file +c:\tlperl\lib/autodie/hints.pm type=file +c:\tlperl\lib/autodie/skip.pm type=file +c:\tlperl\lib/autouse.pm type=file +c:\tlperl\lib/base.pm type=file +c:\tlperl\lib/bigint.pm type=file +c:\tlperl\lib/bignum.pm type=file +c:\tlperl\lib/bigrat.pm type=file +c:\tlperl\lib/blib.pm type=file +c:\tlperl\lib/bytes.pm type=file +c:\tlperl\lib/bytes_heavy.pl type=file +c:\tlperl\lib/charnames.pm type=file +c:\tlperl\lib/constant.pm type=file +c:\tlperl\lib/deprecate.pm type=file +c:\tlperl\lib/diagnostics.pm type=file +c:\tlperl\lib/dumpvar.pl type=file +c:\tlperl\lib/encoding.pm type=file +c:\tlperl\lib/encoding/warnings.pm type=file +c:\tlperl\lib/experimental.pm type=file +c:\tlperl\lib/feature.pm type=file +c:\tlperl\lib/fields.pm type=file +c:\tlperl\lib/filetest.pm type=file +c:\tlperl\lib/if.pm type=file +c:\tlperl\lib/integer.pm type=file +c:\tlperl\lib/less.pm type=file +c:\tlperl\lib/lib.pm type=file +c:\tlperl\lib/locale.pm type=file +c:\tlperl\lib/meta_notation.pm type=file +c:\tlperl\lib/mro.pm type=file +c:\tlperl\lib/ok.pm type=file +c:\tlperl\lib/open.pm type=file +c:\tlperl\lib/ops.pm type=file +c:\tlperl\lib/overload.pm type=file +c:\tlperl\lib/overload/numbers.pm type=file +c:\tlperl\lib/overloading.pm type=file +c:\tlperl\lib/parent.pm type=file +c:\tlperl\lib/perl5db.pl type=file +c:\tlperl\lib/perlfaq.pm type=file +c:\tlperl\lib/pods/perl.pod type=file +c:\tlperl\lib/pods/perl5004delta.pod type=file +c:\tlperl\lib/pods/perl5005delta.pod type=file +c:\tlperl\lib/pods/perl5100delta.pod type=file +c:\tlperl\lib/pods/perl5101delta.pod type=file +c:\tlperl\lib/pods/perl5120delta.pod type=file +c:\tlperl\lib/pods/perl5121delta.pod type=file +c:\tlperl\lib/pods/perl5122delta.pod type=file +c:\tlperl\lib/pods/perl5123delta.pod type=file +c:\tlperl\lib/pods/perl5124delta.pod type=file +c:\tlperl\lib/pods/perl5125delta.pod type=file +c:\tlperl\lib/pods/perl5140delta.pod type=file +c:\tlperl\lib/pods/perl5141delta.pod type=file +c:\tlperl\lib/pods/perl5142delta.pod type=file +c:\tlperl\lib/pods/perl5143delta.pod type=file +c:\tlperl\lib/pods/perl5144delta.pod type=file +c:\tlperl\lib/pods/perl5160delta.pod type=file +c:\tlperl\lib/pods/perl5161delta.pod type=file +c:\tlperl\lib/pods/perl5162delta.pod type=file +c:\tlperl\lib/pods/perl5163delta.pod type=file +c:\tlperl\lib/pods/perl5180delta.pod type=file +c:\tlperl\lib/pods/perl5181delta.pod type=file +c:\tlperl\lib/pods/perl5182delta.pod type=file +c:\tlperl\lib/pods/perl5184delta.pod type=file +c:\tlperl\lib/pods/perl5200delta.pod type=file +c:\tlperl\lib/pods/perl5201delta.pod type=file +c:\tlperl\lib/pods/perl5202delta.pod type=file +c:\tlperl\lib/pods/perl5203delta.pod type=file +c:\tlperl\lib/pods/perl5220delta.pod type=file +c:\tlperl\lib/pods/perl5221delta.pod type=file +c:\tlperl\lib/pods/perl5222delta.pod type=file +c:\tlperl\lib/pods/perl5223delta.pod type=file +c:\tlperl\lib/pods/perl5224delta.pod type=file +c:\tlperl\lib/pods/perl5240delta.pod type=file +c:\tlperl\lib/pods/perl5241delta.pod type=file +c:\tlperl\lib/pods/perl5242delta.pod type=file +c:\tlperl\lib/pods/perl5243delta.pod type=file +c:\tlperl\lib/pods/perl5244delta.pod type=file +c:\tlperl\lib/pods/perl5260delta.pod type=file +c:\tlperl\lib/pods/perl5261delta.pod type=file +c:\tlperl\lib/pods/perl5262delta.pod type=file +c:\tlperl\lib/pods/perl5280delta.pod type=file +c:\tlperl\lib/pods/perl5281delta.pod type=file +c:\tlperl\lib/pods/perl561delta.pod type=file +c:\tlperl\lib/pods/perl56delta.pod type=file +c:\tlperl\lib/pods/perl581delta.pod type=file +c:\tlperl\lib/pods/perl582delta.pod type=file +c:\tlperl\lib/pods/perl583delta.pod type=file +c:\tlperl\lib/pods/perl584delta.pod type=file +c:\tlperl\lib/pods/perl585delta.pod type=file +c:\tlperl\lib/pods/perl586delta.pod type=file +c:\tlperl\lib/pods/perl587delta.pod type=file +c:\tlperl\lib/pods/perl588delta.pod type=file +c:\tlperl\lib/pods/perl589delta.pod type=file +c:\tlperl\lib/pods/perl58delta.pod type=file +c:\tlperl\lib/pods/perlaix.pod type=file +c:\tlperl\lib/pods/perlamiga.pod type=file +c:\tlperl\lib/pods/perlandroid.pod type=file +c:\tlperl\lib/pods/perlapi.pod type=file +c:\tlperl\lib/pods/perlapio.pod type=file +c:\tlperl\lib/pods/perlartistic.pod type=file +c:\tlperl\lib/pods/perlbook.pod type=file +c:\tlperl\lib/pods/perlboot.pod type=file +c:\tlperl\lib/pods/perlbot.pod type=file +c:\tlperl\lib/pods/perlbs2000.pod type=file +c:\tlperl\lib/pods/perlcall.pod type=file +c:\tlperl\lib/pods/perlce.pod type=file +c:\tlperl\lib/pods/perlcheat.pod type=file +c:\tlperl\lib/pods/perlclib.pod type=file +c:\tlperl\lib/pods/perlcn.pod type=file +c:\tlperl\lib/pods/perlcommunity.pod type=file +c:\tlperl\lib/pods/perlcygwin.pod type=file +c:\tlperl\lib/pods/perldata.pod type=file +c:\tlperl\lib/pods/perldbmfilter.pod type=file +c:\tlperl\lib/pods/perldebguts.pod type=file +c:\tlperl\lib/pods/perldebtut.pod type=file +c:\tlperl\lib/pods/perldebug.pod type=file +c:\tlperl\lib/pods/perldelta.pod type=file +c:\tlperl\lib/pods/perldeprecation.pod type=file +c:\tlperl\lib/pods/perldiag.pod type=file +c:\tlperl\lib/pods/perldoc.pod type=file +c:\tlperl\lib/pods/perldos.pod type=file +c:\tlperl\lib/pods/perldsc.pod type=file +c:\tlperl\lib/pods/perldtrace.pod type=file +c:\tlperl\lib/pods/perlebcdic.pod type=file +c:\tlperl\lib/pods/perlembed.pod type=file +c:\tlperl\lib/pods/perlexperiment.pod type=file +c:\tlperl\lib/pods/perlfaq.pod type=file +c:\tlperl\lib/pods/perlfaq1.pod type=file +c:\tlperl\lib/pods/perlfaq2.pod type=file +c:\tlperl\lib/pods/perlfaq3.pod type=file +c:\tlperl\lib/pods/perlfaq4.pod type=file +c:\tlperl\lib/pods/perlfaq5.pod type=file +c:\tlperl\lib/pods/perlfaq6.pod type=file +c:\tlperl\lib/pods/perlfaq7.pod type=file +c:\tlperl\lib/pods/perlfaq8.pod type=file +c:\tlperl\lib/pods/perlfaq9.pod type=file +c:\tlperl\lib/pods/perlfilter.pod type=file +c:\tlperl\lib/pods/perlfork.pod type=file +c:\tlperl\lib/pods/perlform.pod type=file +c:\tlperl\lib/pods/perlfreebsd.pod type=file +c:\tlperl\lib/pods/perlfunc.pod type=file +c:\tlperl\lib/pods/perlgit.pod type=file +c:\tlperl\lib/pods/perlglossary.pod type=file +c:\tlperl\lib/pods/perlgpl.pod type=file +c:\tlperl\lib/pods/perlguts.pod type=file +c:\tlperl\lib/pods/perlhack.pod type=file +c:\tlperl\lib/pods/perlhacktips.pod type=file +c:\tlperl\lib/pods/perlhacktut.pod type=file +c:\tlperl\lib/pods/perlhaiku.pod type=file +c:\tlperl\lib/pods/perlhist.pod type=file +c:\tlperl\lib/pods/perlhpux.pod type=file +c:\tlperl\lib/pods/perlhurd.pod type=file +c:\tlperl\lib/pods/perlintern.pod type=file +c:\tlperl\lib/pods/perlinterp.pod type=file +c:\tlperl\lib/pods/perlintro.pod type=file +c:\tlperl\lib/pods/perliol.pod type=file +c:\tlperl\lib/pods/perlipc.pod type=file +c:\tlperl\lib/pods/perlirix.pod type=file +c:\tlperl\lib/pods/perljp.pod type=file +c:\tlperl\lib/pods/perlko.pod type=file +c:\tlperl\lib/pods/perllexwarn.pod type=file +c:\tlperl\lib/pods/perllinux.pod type=file +c:\tlperl\lib/pods/perllocale.pod type=file +c:\tlperl\lib/pods/perllol.pod type=file +c:\tlperl\lib/pods/perlmacos.pod type=file +c:\tlperl\lib/pods/perlmacosx.pod type=file +c:\tlperl\lib/pods/perlmod.pod type=file +c:\tlperl\lib/pods/perlmodinstall.pod type=file +c:\tlperl\lib/pods/perlmodlib.pod type=file +c:\tlperl\lib/pods/perlmodstyle.pod type=file +c:\tlperl\lib/pods/perlmroapi.pod type=file +c:\tlperl\lib/pods/perlnetware.pod type=file +c:\tlperl\lib/pods/perlnewmod.pod type=file +c:\tlperl\lib/pods/perlnumber.pod type=file +c:\tlperl\lib/pods/perlobj.pod type=file +c:\tlperl\lib/pods/perlootut.pod type=file +c:\tlperl\lib/pods/perlop.pod type=file +c:\tlperl\lib/pods/perlopenbsd.pod type=file +c:\tlperl\lib/pods/perlopentut.pod type=file +c:\tlperl\lib/pods/perlos2.pod type=file +c:\tlperl\lib/pods/perlos390.pod type=file +c:\tlperl\lib/pods/perlos400.pod type=file +c:\tlperl\lib/pods/perlpacktut.pod type=file +c:\tlperl\lib/pods/perlperf.pod type=file +c:\tlperl\lib/pods/perlplan9.pod type=file +c:\tlperl\lib/pods/perlpod.pod type=file +c:\tlperl\lib/pods/perlpodspec.pod type=file +c:\tlperl\lib/pods/perlpodstyle.pod type=file +c:\tlperl\lib/pods/perlpolicy.pod type=file +c:\tlperl\lib/pods/perlport.pod type=file +c:\tlperl\lib/pods/perlpragma.pod type=file +c:\tlperl\lib/pods/perlqnx.pod type=file +c:\tlperl\lib/pods/perlre.pod type=file +c:\tlperl\lib/pods/perlreapi.pod type=file +c:\tlperl\lib/pods/perlrebackslash.pod type=file +c:\tlperl\lib/pods/perlrecharclass.pod type=file +c:\tlperl\lib/pods/perlref.pod type=file +c:\tlperl\lib/pods/perlreftut.pod type=file +c:\tlperl\lib/pods/perlreguts.pod type=file +c:\tlperl\lib/pods/perlrepository.pod type=file +c:\tlperl\lib/pods/perlrequick.pod type=file +c:\tlperl\lib/pods/perlreref.pod type=file +c:\tlperl\lib/pods/perlretut.pod type=file +c:\tlperl\lib/pods/perlriscos.pod type=file +c:\tlperl\lib/pods/perlrun.pod type=file +c:\tlperl\lib/pods/perlsec.pod type=file +c:\tlperl\lib/pods/perlsolaris.pod type=file +c:\tlperl\lib/pods/perlsource.pod type=file +c:\tlperl\lib/pods/perlstyle.pod type=file +c:\tlperl\lib/pods/perlsub.pod type=file +c:\tlperl\lib/pods/perlsymbian.pod type=file +c:\tlperl\lib/pods/perlsyn.pod type=file +c:\tlperl\lib/pods/perlsynology.pod type=file +c:\tlperl\lib/pods/perlthrtut.pod type=file +c:\tlperl\lib/pods/perltie.pod type=file +c:\tlperl\lib/pods/perltoc.pod type=file +c:\tlperl\lib/pods/perltodo.pod type=file +c:\tlperl\lib/pods/perltooc.pod type=file +c:\tlperl\lib/pods/perltoot.pod type=file +c:\tlperl\lib/pods/perltrap.pod type=file +c:\tlperl\lib/pods/perltru64.pod type=file +c:\tlperl\lib/pods/perltw.pod type=file +c:\tlperl\lib/pods/perlunicode.pod type=file +c:\tlperl\lib/pods/perlunicook.pod type=file +c:\tlperl\lib/pods/perlunifaq.pod type=file +c:\tlperl\lib/pods/perluniintro.pod type=file +c:\tlperl\lib/pods/perluniprops.pod type=file +c:\tlperl\lib/pods/perlunitut.pod type=file +c:\tlperl\lib/pods/perlutil.pod type=file +c:\tlperl\lib/pods/perlvar.pod type=file +c:\tlperl\lib/pods/perlvms.pod type=file +c:\tlperl\lib/pods/perlvos.pod type=file +c:\tlperl\lib/pods/perlwin32.pod type=file +c:\tlperl\lib/pods/perlxs.pod type=file +c:\tlperl\lib/pods/perlxstut.pod type=file +c:\tlperl\lib/pods/perlxstypemap.pod type=file +c:\tlperl\lib/re.pm type=file +c:\tlperl\lib/sigtrap.pm type=file +c:\tlperl\lib/sort.pm type=file +c:\tlperl\lib/strict.pm type=file +c:\tlperl\lib/subs.pm type=file +c:\tlperl\lib/threads.pm type=file +c:\tlperl\lib/threads/shared.pm type=file +c:\tlperl\lib/unicore/Blocks.txt type=file +c:\tlperl\lib/unicore/CombiningClass.pl type=file +c:\tlperl\lib/unicore/Decomposition.pl type=file +c:\tlperl\lib/unicore/Heavy.pl type=file +c:\tlperl\lib/unicore/Name.pl type=file +c:\tlperl\lib/unicore/Name.pm type=file +c:\tlperl\lib/unicore/NamedSequences.txt type=file +c:\tlperl\lib/unicore/SpecialCasing.txt type=file +c:\tlperl\lib/unicore/To/Age.pl type=file +c:\tlperl\lib/unicore/To/Bc.pl type=file +c:\tlperl\lib/unicore/To/Bmg.pl type=file +c:\tlperl\lib/unicore/To/Bpb.pl type=file +c:\tlperl\lib/unicore/To/Bpt.pl type=file +c:\tlperl\lib/unicore/To/Cf.pl type=file +c:\tlperl\lib/unicore/To/Digit.pl type=file +c:\tlperl\lib/unicore/To/Ea.pl type=file +c:\tlperl\lib/unicore/To/Fold.pl type=file +c:\tlperl\lib/unicore/To/GCB.pl type=file +c:\tlperl\lib/unicore/To/Gc.pl type=file +c:\tlperl\lib/unicore/To/Hst.pl type=file +c:\tlperl\lib/unicore/To/InPC.pl type=file +c:\tlperl\lib/unicore/To/InSC.pl type=file +c:\tlperl\lib/unicore/To/Isc.pl type=file +c:\tlperl\lib/unicore/To/Jg.pl type=file +c:\tlperl\lib/unicore/To/Jt.pl type=file +c:\tlperl\lib/unicore/To/Lb.pl type=file +c:\tlperl\lib/unicore/To/Lc.pl type=file +c:\tlperl\lib/unicore/To/Lower.pl type=file +c:\tlperl\lib/unicore/To/NFCQC.pl type=file +c:\tlperl\lib/unicore/To/NFDQC.pl type=file +c:\tlperl\lib/unicore/To/NFKCCF.pl type=file +c:\tlperl\lib/unicore/To/NFKCQC.pl type=file +c:\tlperl\lib/unicore/To/NFKDQC.pl type=file +c:\tlperl\lib/unicore/To/Na1.pl type=file +c:\tlperl\lib/unicore/To/NameAlia.pl type=file +c:\tlperl\lib/unicore/To/Nt.pl type=file +c:\tlperl\lib/unicore/To/Nv.pl type=file +c:\tlperl\lib/unicore/To/PerlDeci.pl type=file +c:\tlperl\lib/unicore/To/SB.pl type=file +c:\tlperl\lib/unicore/To/Sc.pl type=file +c:\tlperl\lib/unicore/To/Scx.pl type=file +c:\tlperl\lib/unicore/To/Tc.pl type=file +c:\tlperl\lib/unicore/To/Title.pl type=file +c:\tlperl\lib/unicore/To/Uc.pl type=file +c:\tlperl\lib/unicore/To/Upper.pl type=file +c:\tlperl\lib/unicore/To/Vo.pl type=file +c:\tlperl\lib/unicore/To/WB.pl type=file +c:\tlperl\lib/unicore/To/_PerlLB.pl type=file +c:\tlperl\lib/unicore/To/_PerlSCX.pl type=file +c:\tlperl\lib/unicore/To/_PerlWB.pl type=file +c:\tlperl\lib/unicore/UCD.pl type=file +c:\tlperl\lib/unicore/lib/Age/NA.pl type=file +c:\tlperl\lib/unicore/lib/Age/V100.pl type=file +c:\tlperl\lib/unicore/lib/Age/V11.pl type=file +c:\tlperl\lib/unicore/lib/Age/V20.pl type=file +c:\tlperl\lib/unicore/lib/Age/V30.pl type=file +c:\tlperl\lib/unicore/lib/Age/V31.pl type=file +c:\tlperl\lib/unicore/lib/Age/V32.pl type=file +c:\tlperl\lib/unicore/lib/Age/V40.pl type=file +c:\tlperl\lib/unicore/lib/Age/V41.pl type=file +c:\tlperl\lib/unicore/lib/Age/V50.pl type=file +c:\tlperl\lib/unicore/lib/Age/V51.pl type=file +c:\tlperl\lib/unicore/lib/Age/V52.pl type=file +c:\tlperl\lib/unicore/lib/Age/V60.pl type=file +c:\tlperl\lib/unicore/lib/Age/V61.pl type=file +c:\tlperl\lib/unicore/lib/Age/V70.pl type=file +c:\tlperl\lib/unicore/lib/Age/V80.pl type=file +c:\tlperl\lib/unicore/lib/Age/V90.pl type=file +c:\tlperl\lib/unicore/lib/Alpha/Y.pl type=file +c:\tlperl\lib/unicore/lib/Bc/AL.pl type=file +c:\tlperl\lib/unicore/lib/Bc/AN.pl type=file +c:\tlperl\lib/unicore/lib/Bc/B.pl type=file +c:\tlperl\lib/unicore/lib/Bc/BN.pl type=file +c:\tlperl\lib/unicore/lib/Bc/CS.pl type=file +c:\tlperl\lib/unicore/lib/Bc/EN.pl type=file +c:\tlperl\lib/unicore/lib/Bc/ES.pl type=file +c:\tlperl\lib/unicore/lib/Bc/ET.pl type=file +c:\tlperl\lib/unicore/lib/Bc/L.pl type=file +c:\tlperl\lib/unicore/lib/Bc/NSM.pl type=file +c:\tlperl\lib/unicore/lib/Bc/ON.pl type=file +c:\tlperl\lib/unicore/lib/Bc/R.pl type=file +c:\tlperl\lib/unicore/lib/Bc/WS.pl type=file +c:\tlperl\lib/unicore/lib/BidiC/Y.pl type=file +c:\tlperl\lib/unicore/lib/BidiM/Y.pl type=file +c:\tlperl\lib/unicore/lib/Blk/NB.pl type=file +c:\tlperl\lib/unicore/lib/Bpt/C.pl type=file +c:\tlperl\lib/unicore/lib/Bpt/N.pl type=file +c:\tlperl\lib/unicore/lib/Bpt/O.pl type=file +c:\tlperl\lib/unicore/lib/CE/Y.pl type=file +c:\tlperl\lib/unicore/lib/CI/Y.pl type=file +c:\tlperl\lib/unicore/lib/CWCF/Y.pl type=file +c:\tlperl\lib/unicore/lib/CWCM/Y.pl type=file +c:\tlperl\lib/unicore/lib/CWKCF/Y.pl type=file +c:\tlperl\lib/unicore/lib/CWL/Y.pl type=file +c:\tlperl\lib/unicore/lib/CWT/Y.pl type=file +c:\tlperl\lib/unicore/lib/CWU/Y.pl type=file +c:\tlperl\lib/unicore/lib/Cased/Y.pl type=file +c:\tlperl\lib/unicore/lib/Ccc/A.pl type=file +c:\tlperl\lib/unicore/lib/Ccc/AL.pl type=file +c:\tlperl\lib/unicore/lib/Ccc/AR.pl type=file +c:\tlperl\lib/unicore/lib/Ccc/ATAR.pl type=file +c:\tlperl\lib/unicore/lib/Ccc/B.pl type=file +c:\tlperl\lib/unicore/lib/Ccc/BR.pl type=file +c:\tlperl\lib/unicore/lib/Ccc/DB.pl type=file +c:\tlperl\lib/unicore/lib/Ccc/NK.pl type=file +c:\tlperl\lib/unicore/lib/Ccc/NR.pl type=file +c:\tlperl\lib/unicore/lib/Ccc/OV.pl type=file +c:\tlperl\lib/unicore/lib/Ccc/VR.pl type=file +c:\tlperl\lib/unicore/lib/CompEx/Y.pl type=file +c:\tlperl\lib/unicore/lib/DI/Y.pl type=file +c:\tlperl\lib/unicore/lib/Dash/Y.pl type=file +c:\tlperl\lib/unicore/lib/Dep/Y.pl type=file +c:\tlperl\lib/unicore/lib/Dia/Y.pl type=file +c:\tlperl\lib/unicore/lib/Dt/Com.pl type=file +c:\tlperl\lib/unicore/lib/Dt/Enc.pl type=file +c:\tlperl\lib/unicore/lib/Dt/Fin.pl type=file +c:\tlperl\lib/unicore/lib/Dt/Font.pl type=file +c:\tlperl\lib/unicore/lib/Dt/Init.pl type=file +c:\tlperl\lib/unicore/lib/Dt/Iso.pl type=file +c:\tlperl\lib/unicore/lib/Dt/Med.pl type=file +c:\tlperl\lib/unicore/lib/Dt/Nar.pl type=file +c:\tlperl\lib/unicore/lib/Dt/Nb.pl type=file +c:\tlperl\lib/unicore/lib/Dt/NonCanon.pl type=file +c:\tlperl\lib/unicore/lib/Dt/Sqr.pl type=file +c:\tlperl\lib/unicore/lib/Dt/Sub.pl type=file +c:\tlperl\lib/unicore/lib/Dt/Sup.pl type=file +c:\tlperl\lib/unicore/lib/Dt/Vert.pl type=file +c:\tlperl\lib/unicore/lib/Ea/A.pl type=file +c:\tlperl\lib/unicore/lib/Ea/H.pl type=file +c:\tlperl\lib/unicore/lib/Ea/N.pl type=file +c:\tlperl\lib/unicore/lib/Ea/Na.pl type=file +c:\tlperl\lib/unicore/lib/Ea/W.pl type=file +c:\tlperl\lib/unicore/lib/Ext/Y.pl type=file +c:\tlperl\lib/unicore/lib/GCB/CN.pl type=file +c:\tlperl\lib/unicore/lib/GCB/EB.pl type=file +c:\tlperl\lib/unicore/lib/GCB/EX.pl type=file +c:\tlperl\lib/unicore/lib/GCB/GAZ.pl type=file +c:\tlperl\lib/unicore/lib/GCB/LV.pl type=file +c:\tlperl\lib/unicore/lib/GCB/LVT.pl type=file +c:\tlperl\lib/unicore/lib/GCB/PP.pl type=file +c:\tlperl\lib/unicore/lib/GCB/SM.pl type=file +c:\tlperl\lib/unicore/lib/GCB/XX.pl type=file +c:\tlperl\lib/unicore/lib/Gc/C.pl type=file +c:\tlperl\lib/unicore/lib/Gc/Cf.pl type=file +c:\tlperl\lib/unicore/lib/Gc/Cn.pl type=file +c:\tlperl\lib/unicore/lib/Gc/L.pl type=file +c:\tlperl\lib/unicore/lib/Gc/LC.pl type=file +c:\tlperl\lib/unicore/lib/Gc/Ll.pl type=file +c:\tlperl\lib/unicore/lib/Gc/Lm.pl type=file +c:\tlperl\lib/unicore/lib/Gc/Lo.pl type=file +c:\tlperl\lib/unicore/lib/Gc/Lu.pl type=file +c:\tlperl\lib/unicore/lib/Gc/M.pl type=file +c:\tlperl\lib/unicore/lib/Gc/Mc.pl type=file +c:\tlperl\lib/unicore/lib/Gc/Me.pl type=file +c:\tlperl\lib/unicore/lib/Gc/Mn.pl type=file +c:\tlperl\lib/unicore/lib/Gc/N.pl type=file +c:\tlperl\lib/unicore/lib/Gc/Nd.pl type=file +c:\tlperl\lib/unicore/lib/Gc/Nl.pl type=file +c:\tlperl\lib/unicore/lib/Gc/No.pl type=file +c:\tlperl\lib/unicore/lib/Gc/P.pl type=file +c:\tlperl\lib/unicore/lib/Gc/Pc.pl type=file +c:\tlperl\lib/unicore/lib/Gc/Pd.pl type=file +c:\tlperl\lib/unicore/lib/Gc/Pe.pl type=file +c:\tlperl\lib/unicore/lib/Gc/Pf.pl type=file +c:\tlperl\lib/unicore/lib/Gc/Pi.pl type=file +c:\tlperl\lib/unicore/lib/Gc/Po.pl type=file +c:\tlperl\lib/unicore/lib/Gc/Ps.pl type=file +c:\tlperl\lib/unicore/lib/Gc/S.pl type=file +c:\tlperl\lib/unicore/lib/Gc/Sc.pl type=file +c:\tlperl\lib/unicore/lib/Gc/Sk.pl type=file +c:\tlperl\lib/unicore/lib/Gc/Sm.pl type=file +c:\tlperl\lib/unicore/lib/Gc/So.pl type=file +c:\tlperl\lib/unicore/lib/Gc/Z.pl type=file +c:\tlperl\lib/unicore/lib/Gc/Zs.pl type=file +c:\tlperl\lib/unicore/lib/GrBase/Y.pl type=file +c:\tlperl\lib/unicore/lib/Hex/Y.pl type=file +c:\tlperl\lib/unicore/lib/Hst/NA.pl type=file +c:\tlperl\lib/unicore/lib/Hyphen/T.pl type=file +c:\tlperl\lib/unicore/lib/IDC/Y.pl type=file +c:\tlperl\lib/unicore/lib/IDS/Y.pl type=file +c:\tlperl\lib/unicore/lib/Ideo/Y.pl type=file +c:\tlperl\lib/unicore/lib/In/10_0.pl type=file +c:\tlperl\lib/unicore/lib/In/2_0.pl type=file +c:\tlperl\lib/unicore/lib/In/2_1.pl type=file +c:\tlperl\lib/unicore/lib/In/3_0.pl type=file +c:\tlperl\lib/unicore/lib/In/3_1.pl type=file +c:\tlperl\lib/unicore/lib/In/3_2.pl type=file +c:\tlperl\lib/unicore/lib/In/4_0.pl type=file +c:\tlperl\lib/unicore/lib/In/4_1.pl type=file +c:\tlperl\lib/unicore/lib/In/5_0.pl type=file +c:\tlperl\lib/unicore/lib/In/5_1.pl type=file +c:\tlperl\lib/unicore/lib/In/5_2.pl type=file +c:\tlperl\lib/unicore/lib/In/6_0.pl type=file +c:\tlperl\lib/unicore/lib/In/6_1.pl type=file +c:\tlperl\lib/unicore/lib/In/6_2.pl type=file +c:\tlperl\lib/unicore/lib/In/6_3.pl type=file +c:\tlperl\lib/unicore/lib/In/7_0.pl type=file +c:\tlperl\lib/unicore/lib/In/8_0.pl type=file +c:\tlperl\lib/unicore/lib/In/9_0.pl type=file +c:\tlperl\lib/unicore/lib/InPC/Bottom.pl type=file +c:\tlperl\lib/unicore/lib/InPC/Left.pl type=file +c:\tlperl\lib/unicore/lib/InPC/LeftAndR.pl type=file +c:\tlperl\lib/unicore/lib/InPC/NA.pl type=file +c:\tlperl\lib/unicore/lib/InPC/Overstru.pl type=file +c:\tlperl\lib/unicore/lib/InPC/Right.pl type=file +c:\tlperl\lib/unicore/lib/InPC/Top.pl type=file +c:\tlperl\lib/unicore/lib/InPC/TopAndBo.pl type=file +c:\tlperl\lib/unicore/lib/InPC/TopAndL2.pl type=file +c:\tlperl\lib/unicore/lib/InPC/TopAndLe.pl type=file +c:\tlperl\lib/unicore/lib/InPC/TopAndRi.pl type=file +c:\tlperl\lib/unicore/lib/InPC/VisualOr.pl type=file +c:\tlperl\lib/unicore/lib/InSC/Avagraha.pl type=file +c:\tlperl\lib/unicore/lib/InSC/Bindu.pl type=file +c:\tlperl\lib/unicore/lib/InSC/Cantilla.pl type=file +c:\tlperl\lib/unicore/lib/InSC/Consona2.pl type=file +c:\tlperl\lib/unicore/lib/InSC/Consona3.pl type=file +c:\tlperl\lib/unicore/lib/InSC/Consona4.pl type=file +c:\tlperl\lib/unicore/lib/InSC/Consona5.pl type=file +c:\tlperl\lib/unicore/lib/InSC/Consona6.pl type=file +c:\tlperl\lib/unicore/lib/InSC/Consonan.pl type=file +c:\tlperl\lib/unicore/lib/InSC/Invisibl.pl type=file +c:\tlperl\lib/unicore/lib/InSC/Nukta.pl type=file +c:\tlperl\lib/unicore/lib/InSC/Number.pl type=file +c:\tlperl\lib/unicore/lib/InSC/Other.pl type=file +c:\tlperl\lib/unicore/lib/InSC/PureKill.pl type=file +c:\tlperl\lib/unicore/lib/InSC/Syllable.pl type=file +c:\tlperl\lib/unicore/lib/InSC/ToneMark.pl type=file +c:\tlperl\lib/unicore/lib/InSC/Virama.pl type=file +c:\tlperl\lib/unicore/lib/InSC/Visarga.pl type=file +c:\tlperl\lib/unicore/lib/InSC/Vowel.pl type=file +c:\tlperl\lib/unicore/lib/InSC/VowelDep.pl type=file +c:\tlperl\lib/unicore/lib/InSC/VowelInd.pl type=file +c:\tlperl\lib/unicore/lib/Jg/Ain.pl type=file +c:\tlperl\lib/unicore/lib/Jg/Alef.pl type=file +c:\tlperl\lib/unicore/lib/Jg/Beh.pl type=file +c:\tlperl\lib/unicore/lib/Jg/Dal.pl type=file +c:\tlperl\lib/unicore/lib/Jg/FarsiYeh.pl type=file +c:\tlperl\lib/unicore/lib/Jg/Feh.pl type=file +c:\tlperl\lib/unicore/lib/Jg/Gaf.pl type=file +c:\tlperl\lib/unicore/lib/Jg/Hah.pl type=file +c:\tlperl\lib/unicore/lib/Jg/Kaf.pl type=file +c:\tlperl\lib/unicore/lib/Jg/Lam.pl type=file +c:\tlperl\lib/unicore/lib/Jg/NoJoinin.pl type=file +c:\tlperl\lib/unicore/lib/Jg/Qaf.pl type=file +c:\tlperl\lib/unicore/lib/Jg/Reh.pl type=file +c:\tlperl\lib/unicore/lib/Jg/Sad.pl type=file +c:\tlperl\lib/unicore/lib/Jg/Seen.pl type=file +c:\tlperl\lib/unicore/lib/Jg/Waw.pl type=file +c:\tlperl\lib/unicore/lib/Jg/Yeh.pl type=file +c:\tlperl\lib/unicore/lib/Jt/C.pl type=file +c:\tlperl\lib/unicore/lib/Jt/D.pl type=file +c:\tlperl\lib/unicore/lib/Jt/R.pl type=file +c:\tlperl\lib/unicore/lib/Jt/T.pl type=file +c:\tlperl\lib/unicore/lib/Jt/U.pl type=file +c:\tlperl\lib/unicore/lib/Lb/AI.pl type=file +c:\tlperl\lib/unicore/lib/Lb/AL.pl type=file +c:\tlperl\lib/unicore/lib/Lb/BA.pl type=file +c:\tlperl\lib/unicore/lib/Lb/BB.pl type=file +c:\tlperl\lib/unicore/lib/Lb/CJ.pl type=file +c:\tlperl\lib/unicore/lib/Lb/CL.pl type=file +c:\tlperl\lib/unicore/lib/Lb/CM.pl type=file +c:\tlperl\lib/unicore/lib/Lb/EB.pl type=file +c:\tlperl\lib/unicore/lib/Lb/EX.pl type=file +c:\tlperl\lib/unicore/lib/Lb/GL.pl type=file +c:\tlperl\lib/unicore/lib/Lb/ID.pl type=file +c:\tlperl\lib/unicore/lib/Lb/IN.pl type=file +c:\tlperl\lib/unicore/lib/Lb/IS.pl type=file +c:\tlperl\lib/unicore/lib/Lb/NS.pl type=file +c:\tlperl\lib/unicore/lib/Lb/OP.pl type=file +c:\tlperl\lib/unicore/lib/Lb/PO.pl type=file +c:\tlperl\lib/unicore/lib/Lb/PR.pl type=file +c:\tlperl\lib/unicore/lib/Lb/QU.pl type=file +c:\tlperl\lib/unicore/lib/Lb/SA.pl type=file +c:\tlperl\lib/unicore/lib/Lb/XX.pl type=file +c:\tlperl\lib/unicore/lib/Lower/Y.pl type=file +c:\tlperl\lib/unicore/lib/Math/Y.pl type=file +c:\tlperl\lib/unicore/lib/NFCQC/M.pl type=file +c:\tlperl\lib/unicore/lib/NFCQC/Y.pl type=file +c:\tlperl\lib/unicore/lib/NFDQC/N.pl type=file +c:\tlperl\lib/unicore/lib/NFDQC/Y.pl type=file +c:\tlperl\lib/unicore/lib/NFKCQC/N.pl type=file +c:\tlperl\lib/unicore/lib/NFKCQC/Y.pl type=file +c:\tlperl\lib/unicore/lib/NFKDQC/N.pl type=file +c:\tlperl\lib/unicore/lib/NFKDQC/Y.pl type=file +c:\tlperl\lib/unicore/lib/Nt/Di.pl type=file +c:\tlperl\lib/unicore/lib/Nt/None.pl type=file +c:\tlperl\lib/unicore/lib/Nt/Nu.pl type=file +c:\tlperl\lib/unicore/lib/Nv/0.pl type=file +c:\tlperl\lib/unicore/lib/Nv/1.pl type=file +c:\tlperl\lib/unicore/lib/Nv/10.pl type=file +c:\tlperl\lib/unicore/lib/Nv/100.pl type=file +c:\tlperl\lib/unicore/lib/Nv/1000.pl type=file +c:\tlperl\lib/unicore/lib/Nv/10000.pl type=file +c:\tlperl\lib/unicore/lib/Nv/11.pl type=file +c:\tlperl\lib/unicore/lib/Nv/12.pl type=file +c:\tlperl\lib/unicore/lib/Nv/13.pl type=file +c:\tlperl\lib/unicore/lib/Nv/14.pl type=file +c:\tlperl\lib/unicore/lib/Nv/15.pl type=file +c:\tlperl\lib/unicore/lib/Nv/16.pl type=file +c:\tlperl\lib/unicore/lib/Nv/17.pl type=file +c:\tlperl\lib/unicore/lib/Nv/18.pl type=file +c:\tlperl\lib/unicore/lib/Nv/19.pl type=file +c:\tlperl\lib/unicore/lib/Nv/1_16.pl type=file +c:\tlperl\lib/unicore/lib/Nv/1_2.pl type=file +c:\tlperl\lib/unicore/lib/Nv/1_3.pl type=file +c:\tlperl\lib/unicore/lib/Nv/1_4.pl type=file +c:\tlperl\lib/unicore/lib/Nv/1_8.pl type=file +c:\tlperl\lib/unicore/lib/Nv/2.pl type=file +c:\tlperl\lib/unicore/lib/Nv/20.pl type=file +c:\tlperl\lib/unicore/lib/Nv/200.pl type=file +c:\tlperl\lib/unicore/lib/Nv/2_3.pl type=file +c:\tlperl\lib/unicore/lib/Nv/3.pl type=file +c:\tlperl\lib/unicore/lib/Nv/30.pl type=file +c:\tlperl\lib/unicore/lib/Nv/300.pl type=file +c:\tlperl\lib/unicore/lib/Nv/3_16.pl type=file +c:\tlperl\lib/unicore/lib/Nv/3_4.pl type=file +c:\tlperl\lib/unicore/lib/Nv/4.pl type=file +c:\tlperl\lib/unicore/lib/Nv/40.pl type=file +c:\tlperl\lib/unicore/lib/Nv/400.pl type=file +c:\tlperl\lib/unicore/lib/Nv/5.pl type=file +c:\tlperl\lib/unicore/lib/Nv/50.pl type=file +c:\tlperl\lib/unicore/lib/Nv/500.pl type=file +c:\tlperl\lib/unicore/lib/Nv/5000.pl type=file +c:\tlperl\lib/unicore/lib/Nv/50000.pl type=file +c:\tlperl\lib/unicore/lib/Nv/6.pl type=file +c:\tlperl\lib/unicore/lib/Nv/60.pl type=file +c:\tlperl\lib/unicore/lib/Nv/600.pl type=file +c:\tlperl\lib/unicore/lib/Nv/7.pl type=file +c:\tlperl\lib/unicore/lib/Nv/70.pl type=file +c:\tlperl\lib/unicore/lib/Nv/700.pl type=file +c:\tlperl\lib/unicore/lib/Nv/8.pl type=file +c:\tlperl\lib/unicore/lib/Nv/80.pl type=file +c:\tlperl\lib/unicore/lib/Nv/800.pl type=file +c:\tlperl\lib/unicore/lib/Nv/9.pl type=file +c:\tlperl\lib/unicore/lib/Nv/90.pl type=file +c:\tlperl\lib/unicore/lib/Nv/900.pl type=file +c:\tlperl\lib/unicore/lib/PCM/Y.pl type=file +c:\tlperl\lib/unicore/lib/PatSyn/Y.pl type=file +c:\tlperl\lib/unicore/lib/Perl/Alnum.pl type=file +c:\tlperl\lib/unicore/lib/Perl/Assigned.pl type=file +c:\tlperl\lib/unicore/lib/Perl/Blank.pl type=file +c:\tlperl\lib/unicore/lib/Perl/Graph.pl type=file +c:\tlperl\lib/unicore/lib/Perl/PerlWord.pl type=file +c:\tlperl\lib/unicore/lib/Perl/PosixPun.pl type=file +c:\tlperl\lib/unicore/lib/Perl/Print.pl type=file +c:\tlperl\lib/unicore/lib/Perl/SpacePer.pl type=file +c:\tlperl\lib/unicore/lib/Perl/Title.pl type=file +c:\tlperl\lib/unicore/lib/Perl/Word.pl type=file +c:\tlperl\lib/unicore/lib/Perl/XPosixPu.pl type=file +c:\tlperl\lib/unicore/lib/Perl/_PerlAny.pl type=file +c:\tlperl\lib/unicore/lib/Perl/_PerlCh2.pl type=file +c:\tlperl\lib/unicore/lib/Perl/_PerlCha.pl type=file +c:\tlperl\lib/unicore/lib/Perl/_PerlFol.pl type=file +c:\tlperl\lib/unicore/lib/Perl/_PerlIDC.pl type=file +c:\tlperl\lib/unicore/lib/Perl/_PerlIDS.pl type=file +c:\tlperl\lib/unicore/lib/Perl/_PerlNch.pl type=file +c:\tlperl\lib/unicore/lib/Perl/_PerlPat.pl type=file +c:\tlperl\lib/unicore/lib/Perl/_PerlPr2.pl type=file +c:\tlperl\lib/unicore/lib/Perl/_PerlPro.pl type=file +c:\tlperl\lib/unicore/lib/Perl/_PerlQuo.pl type=file +c:\tlperl\lib/unicore/lib/QMark/Y.pl type=file +c:\tlperl\lib/unicore/lib/SB/AT.pl type=file +c:\tlperl\lib/unicore/lib/SB/CL.pl type=file +c:\tlperl\lib/unicore/lib/SB/EX.pl type=file +c:\tlperl\lib/unicore/lib/SB/FO.pl type=file +c:\tlperl\lib/unicore/lib/SB/LE.pl type=file +c:\tlperl\lib/unicore/lib/SB/LO.pl type=file +c:\tlperl\lib/unicore/lib/SB/NU.pl type=file +c:\tlperl\lib/unicore/lib/SB/SC.pl type=file +c:\tlperl\lib/unicore/lib/SB/ST.pl type=file +c:\tlperl\lib/unicore/lib/SB/Sp.pl type=file +c:\tlperl\lib/unicore/lib/SB/UP.pl type=file +c:\tlperl\lib/unicore/lib/SB/XX.pl type=file +c:\tlperl\lib/unicore/lib/SD/Y.pl type=file +c:\tlperl\lib/unicore/lib/STerm/Y.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Arab.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Armn.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Beng.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Cprt.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Cyrl.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Deva.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Dupl.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Geor.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Glag.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Gran.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Grek.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Gujr.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Guru.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Han.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Hang.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Hira.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Kana.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Knda.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Latn.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Limb.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Linb.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Mlym.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Mong.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Mult.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Orya.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Sinh.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Syrc.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Taml.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Telu.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Zinh.pl type=file +c:\tlperl\lib/unicore/lib/Sc/Zyyy.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Adlm.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Arab.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Armn.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Beng.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Bhks.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Bopo.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Cakm.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Cham.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Copt.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Cprt.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Cyrl.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Deva.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Dupl.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Ethi.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Geor.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Glag.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Gonm.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Gran.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Grek.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Gujr.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Guru.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Han.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Hang.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Hebr.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Hira.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Hmng.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Kana.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Khar.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Khmr.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Knda.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Lana.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Lao.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Latn.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Limb.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Lina.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Linb.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Mlym.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Mong.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Mult.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Mymr.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Orya.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Phlp.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Shrd.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Sind.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Sinh.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Syrc.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Tagb.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Takr.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Talu.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Taml.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Telu.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Thaa.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Tibt.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Tirh.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Xsux.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Yi.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Zinh.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Zyyy.pl type=file +c:\tlperl\lib/unicore/lib/Scx/Zzzz.pl type=file +c:\tlperl\lib/unicore/lib/Term/Y.pl type=file +c:\tlperl\lib/unicore/lib/UIdeo/Y.pl type=file +c:\tlperl\lib/unicore/lib/Upper/Y.pl type=file +c:\tlperl\lib/unicore/lib/Vo/R.pl type=file +c:\tlperl\lib/unicore/lib/Vo/Tr.pl type=file +c:\tlperl\lib/unicore/lib/Vo/Tu.pl type=file +c:\tlperl\lib/unicore/lib/Vo/U.pl type=file +c:\tlperl\lib/unicore/lib/WB/EX.pl type=file +c:\tlperl\lib/unicore/lib/WB/Extend.pl type=file +c:\tlperl\lib/unicore/lib/WB/FO.pl type=file +c:\tlperl\lib/unicore/lib/WB/HL.pl type=file +c:\tlperl\lib/unicore/lib/WB/KA.pl type=file +c:\tlperl\lib/unicore/lib/WB/LE.pl type=file +c:\tlperl\lib/unicore/lib/WB/MB.pl type=file +c:\tlperl\lib/unicore/lib/WB/ML.pl type=file +c:\tlperl\lib/unicore/lib/WB/MN.pl type=file +c:\tlperl\lib/unicore/lib/WB/NU.pl type=file +c:\tlperl\lib/unicore/lib/WB/XX.pl type=file +c:\tlperl\lib/unicore/lib/XIDC/Y.pl type=file +c:\tlperl\lib/unicore/lib/XIDS/Y.pl type=file +c:\tlperl\lib/unicore/version type=file +c:\tlperl\lib/utf8.pm type=file +c:\tlperl\lib/utf8_heavy.pl type=file +c:\tlperl\lib/vars.pm type=file +c:\tlperl\lib/version.pm type=file +c:\tlperl\lib/version.pod type=file +c:\tlperl\lib/version/Internals.pod type=file +c:\tlperl\lib/version/regex.pm type=file +c:\tlperl\lib/vmsish.pm type=file +c:\tlperl\lib/warnings.pm type=file +c:\tlperl\lib/warnings/register.pm type=file diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/AnyDBM_File.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/AnyDBM_File.pm new file mode 100644 index 0000000000..4153af2de2 --- /dev/null +++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/AnyDBM_File.pm @@ -0,0 +1,96 @@ +package AnyDBM_File; +use warnings; +use strict; + +use 5.006_001; +our $VERSION = '1.01'; +our @ISA = qw(NDBM_File DB_File GDBM_File SDBM_File ODBM_File) unless @ISA; + +my $mod; +for $mod (@ISA) { + if (eval "require $mod") { + @ISA = ($mod); # if we leave @ISA alone, warnings abound + return 1; + } +} + +die "No DBM package was successfully found or installed"; + +__END__ + +=head1 NAME + +AnyDBM_File - provide framework for multiple DBMs + +NDBM_File, DB_File, GDBM_File, SDBM_File, ODBM_File - various DBM implementations + +=head1 SYNOPSIS + + use AnyDBM_File; + +=head1 DESCRIPTION + +This module is a "pure virtual base class"--it has nothing of its own. +It's just there to inherit from one of the various DBM packages. It +prefers ndbm for compatibility reasons with Perl 4, then Berkeley DB (See +L), GDBM, SDBM (which is always there--it comes with Perl), and +finally ODBM. This way old programs that used to use NDBM via dbmopen() +can still do so, but new ones can reorder @ISA: + + BEGIN { @AnyDBM_File::ISA = qw(DB_File GDBM_File NDBM_File) } + use AnyDBM_File; + +Having multiple DBM implementations makes it trivial to copy database formats: + + use Fcntl; use NDBM_File; use DB_File; + tie %newhash, 'DB_File', $new_filename, O_CREAT|O_RDWR; + tie %oldhash, 'NDBM_File', $old_filename, 1, 0; + %newhash = %oldhash; + +=head2 DBM Comparisons + +Here's a partial table of features the different packages offer: + + odbm ndbm sdbm gdbm bsd-db + ---- ---- ---- ---- ------ + Linkage comes w/ perl yes yes yes yes yes + Src comes w/ perl no no yes no no + Comes w/ many unix os yes yes[0] no no no + Builds ok on !unix ? ? yes yes ? + Code Size ? ? small big big + Database Size ? ? small big? ok[1] + Speed ? ? slow ok fast + FTPable no no yes yes yes + Easy to build N/A N/A yes yes ok[2] + Size limits 1k 4k 1k[3] none none + Byte-order independent no no no no yes + Licensing restrictions ? ? no yes no + + +=over 4 + +=item [0] + +on mixed universe machines, may be in the bsd compat library, +which is often shunned. + +=item [1] + +Can be trimmed if you compile for one access method. + +=item [2] + +See L. +Requires symbolic links. + +=item [3] + +By default, but can be redefined. + +=back + +=head1 SEE ALSO + +dbm(3), ndbm(3), DB_File(3), L + +=cut diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Cpan.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Cpan.pm new file mode 100644 index 0000000000..87549126dc --- /dev/null +++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Cpan.pm @@ -0,0 +1,1692 @@ +package App::Cpan; + +use strict; +use warnings; +use vars qw($VERSION); + +use if $] < 5.008 => 'IO::Scalar'; + +$VERSION = '1.67'; + +=head1 NAME + +App::Cpan - easily interact with CPAN from the command line + +=head1 SYNOPSIS + + # with arguments and no switches, installs specified modules + cpan module_name [ module_name ... ] + + # with switches, installs modules with extra behavior + cpan [-cfFimtTw] module_name [ module_name ... ] + + # use local::lib + cpan -I module_name [ module_name ... ] + + # one time mirror override for faster mirrors + cpan -p ... + + # with just the dot, install from the distribution in the + # current directory + cpan . + + # without arguments, starts CPAN.pm shell + cpan + + # without arguments, but some switches + cpan [-ahpruvACDLOPX] + +=head1 DESCRIPTION + +This script provides a command interface (not a shell) to CPAN. At the +moment it uses CPAN.pm to do the work, but it is not a one-shot command +runner for CPAN.pm. + +=head2 Options + +=over 4 + +=item -a + +Creates a CPAN.pm autobundle with CPAN::Shell->autobundle. + +=item -A module [ module ... ] + +Shows the primary maintainers for the specified modules. + +=item -c module + +Runs a `make clean` in the specified module's directories. + +=item -C module [ module ... ] + +Show the F files for the specified modules + +=item -D module [ module ... ] + +Show the module details. This prints one line for each out-of-date module +(meaning, modules locally installed but have newer versions on CPAN). +Each line has three columns: module name, local version, and CPAN +version. + +=item -f + +Force the specified action, when it normally would have failed. Use this +to install a module even if its tests fail. When you use this option, +-i is not optional for installing a module when you need to force it: + + % cpan -f -i Module::Foo + +=item -F + +Turn off CPAN.pm's attempts to lock anything. You should be careful with +this since you might end up with multiple scripts trying to muck in the +same directory. This isn't so much of a concern if you're loading a special +config with C<-j>, and that config sets up its own work directories. + +=item -g module [ module ... ] + +Downloads to the current directory the latest distribution of the module. + +=item -G module [ module ... ] + +UNIMPLEMENTED + +Download to the current directory the latest distribution of the +modules, unpack each distribution, and create a git repository for each +distribution. + +If you want this feature, check out Yanick Champoux's C +distribution. + +=item -h + +Print a help message and exit. When you specify C<-h>, it ignores all +of the other options and arguments. + +=item -i module [ module ... ] + +Install the specified modules. With no other switches, this switch +is implied. + +=item -I + +Load C (think like C<-I> for loading lib paths). Too bad +C<-l> was already taken. + +=item -j Config.pm + +Load the file that has the CPAN configuration data. This should have the +same format as the standard F file, which defines +C<$CPAN::Config> as an anonymous hash. + +=item -J + +Dump the configuration in the same format that CPAN.pm uses. This is useful +for checking the configuration as well as using the dump as a starting point +for a new, custom configuration. + +=item -l + +List all installed modules with their versions + +=item -L author [ author ... ] + +List the modules by the specified authors. + +=item -m + +Make the specified modules. + +=item -M mirror1,mirror2,... + +A comma-separated list of mirrors to use for just this run. The C<-P> +option can find them for you automatically. + +=item -n + +Do a dry run, but don't actually install anything. (unimplemented) + +=item -O + +Show the out-of-date modules. + +=item -p + +Ping the configured mirrors and print a report + +=item -P + +Find the best mirrors you could be using and use them for the current +session. + +=item -r + +Recompiles dynamically loaded modules with CPAN::Shell->recompile. + +=item -s + +Drop in the CPAN.pm shell. This command does this automatically if you don't +specify any arguments. + +=item -t module [ module ... ] + +Run a `make test` on the specified modules. + +=item -T + +Do not test modules. Simply install them. + +=item -u + +Upgrade all installed modules. Blindly doing this can really break things, +so keep a backup. + +=item -v + +Print the script version and CPAN.pm version then exit. + +=item -V + +Print detailed information about the cpan client. + +=item -w + +UNIMPLEMENTED + +Turn on cpan warnings. This checks various things, like directory permissions, +and tells you about problems you might have. + +=item -x module [ module ... ] + +Find close matches to the named modules that you think you might have +mistyped. This requires the optional installation of Text::Levenshtein or +Text::Levenshtein::Damerau. + +=item -X + +Dump all the namespaces to standard output. + +=back + +=head2 Examples + + # print a help message + cpan -h + + # print the version numbers + cpan -v + + # create an autobundle + cpan -a + + # recompile modules + cpan -r + + # upgrade all installed modules + cpan -u + + # install modules ( sole -i is optional ) + cpan -i Netscape::Booksmarks Business::ISBN + + # force install modules ( must use -i ) + cpan -fi CGI::Minimal URI + + # install modules but without testing them + cpan -Ti CGI::Minimal URI + +=head2 Environment variables + +There are several components in CPAN.pm that use environment variables. +The build tools, L and L use some, +while others matter to the levels above them. Some of these are specified +by the Perl Toolchain Gang: + +Lancaster Concensus: L + +Oslo Concensus: L + +=over 4 + +=item NONINTERACTIVE_TESTING + +Assume no one is paying attention and skips prompts for distributions +that do that correctly. C sets this to C<1> unless it already +has a value (even if that value is false). + +=item PERL_MM_USE_DEFAULT + +Use the default answer for a prompted questions. C sets this +to C<1> unless it already has a value (even if that value is false). + +=item CPAN_OPTS + +As with C, a string of additional C options to +add to those you specify on the command line. + +=item CPANSCRIPT_LOGLEVEL + +The log level to use, with either the embedded, minimal logger or +L if it is installed. Possible values are the same as +the C levels: C, C, C, C, +C, and C. The default is C. + +=item GIT_COMMAND + +The path to the C binary to use for the Git features. The default +is C. + +=back + +=head2 Methods + +=over 4 + +=cut + +use autouse Carp => qw(carp croak cluck); +use CPAN 1.80 (); # needs no test +use Config; +use autouse Cwd => qw(cwd); +use autouse 'Data::Dumper' => qw(Dumper); +use File::Spec::Functions; +use File::Basename; +use Getopt::Std; + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # +# Internal constants +use constant TRUE => 1; +use constant FALSE => 0; + + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # +# The return values +use constant HEY_IT_WORKED => 0; +use constant I_DONT_KNOW_WHAT_HAPPENED => 1; # 0b0000_0001 +use constant ITS_NOT_MY_FAULT => 2; +use constant THE_PROGRAMMERS_AN_IDIOT => 4; +use constant A_MODULE_FAILED_TO_INSTALL => 8; + + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # +# set up the order of options that we layer over CPAN::Shell +BEGIN { # most of this should be in methods +use vars qw( @META_OPTIONS $Default %CPAN_METHODS @CPAN_OPTIONS @option_order + %Method_table %Method_table_index ); + +@META_OPTIONS = qw( h v V I g G M: C A D O l L a r p P j: J w x X ); + +$Default = 'default'; + +%CPAN_METHODS = ( # map switches to method names in CPAN::Shell + $Default => 'install', + 'c' => 'clean', + 'f' => 'force', + 'i' => 'install', + 'm' => 'make', + 't' => 'test', + 'u' => 'upgrade', + 'T' => 'notest', + 's' => 'shell', + ); +@CPAN_OPTIONS = grep { $_ ne $Default } sort keys %CPAN_METHODS; + +@option_order = ( @META_OPTIONS, @CPAN_OPTIONS ); + + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # +# map switches to the subroutines in this script, along with other information. +# use this stuff instead of hard-coded indices and values +sub NO_ARGS () { 0 } +sub ARGS () { 1 } +sub GOOD_EXIT () { 0 } + +%Method_table = ( +# key => [ sub ref, takes args?, exit value, description ] + + # options that do their thing first, then exit + h => [ \&_print_help, NO_ARGS, GOOD_EXIT, 'Printing help' ], + v => [ \&_print_version, NO_ARGS, GOOD_EXIT, 'Printing version' ], + V => [ \&_print_details, NO_ARGS, GOOD_EXIT, 'Printing detailed version' ], + X => [ \&_list_all_namespaces, NO_ARGS, GOOD_EXIT, 'Listing all namespaces' ], + + # options that affect other options + j => [ \&_load_config, ARGS, GOOD_EXIT, 'Use specified config file' ], + J => [ \&_dump_config, NO_ARGS, GOOD_EXIT, 'Dump configuration to stdout' ], + F => [ \&_lock_lobotomy, NO_ARGS, GOOD_EXIT, 'Turn off CPAN.pm lock files' ], + I => [ \&_load_local_lib, NO_ARGS, GOOD_EXIT, 'Loading local::lib' ], + M => [ \&_use_these_mirrors, ARGS, GOOD_EXIT, 'Setting per session mirrors' ], + P => [ \&_find_good_mirrors, NO_ARGS, GOOD_EXIT, 'Finding good mirrors' ], + w => [ \&_turn_on_warnings, NO_ARGS, GOOD_EXIT, 'Turning on warnings' ], + + # options that do their one thing + g => [ \&_download, ARGS, GOOD_EXIT, 'Download the latest distro' ], + G => [ \&_gitify, ARGS, GOOD_EXIT, 'Down and gitify the latest distro' ], + + C => [ \&_show_Changes, ARGS, GOOD_EXIT, 'Showing Changes file' ], + A => [ \&_show_Author, ARGS, GOOD_EXIT, 'Showing Author' ], + D => [ \&_show_Details, ARGS, GOOD_EXIT, 'Showing Details' ], + O => [ \&_show_out_of_date, NO_ARGS, GOOD_EXIT, 'Showing Out of date' ], + l => [ \&_list_all_mods, NO_ARGS, GOOD_EXIT, 'Listing all modules' ], + + L => [ \&_show_author_mods, ARGS, GOOD_EXIT, 'Showing author mods' ], + a => [ \&_create_autobundle, NO_ARGS, GOOD_EXIT, 'Creating autobundle' ], + p => [ \&_ping_mirrors, NO_ARGS, GOOD_EXIT, 'Pinging mirrors' ], + + r => [ \&_recompile, NO_ARGS, GOOD_EXIT, 'Recompiling' ], + u => [ \&_upgrade, NO_ARGS, GOOD_EXIT, 'Running `make test`' ], + 's' => [ \&_shell, NO_ARGS, GOOD_EXIT, 'Running `make test`' ], + + 'x' => [ \&_guess_namespace, ARGS, GOOD_EXIT, 'Guessing namespaces' ], + c => [ \&_default, ARGS, GOOD_EXIT, 'Running `make clean`' ], + f => [ \&_default, ARGS, GOOD_EXIT, 'Installing with force' ], + i => [ \&_default, ARGS, GOOD_EXIT, 'Running `make install`' ], + 'm' => [ \&_default, ARGS, GOOD_EXIT, 'Running `make`' ], + t => [ \&_default, ARGS, GOOD_EXIT, 'Running `make test`' ], + T => [ \&_default, ARGS, GOOD_EXIT, 'Installing with notest' ], + ); + +%Method_table_index = ( + code => 0, + takes_args => 1, + exit_value => 2, + description => 3, + ); +} + + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # +# finally, do some argument processing + +sub _stupid_interface_hack_for_non_rtfmers + { + no warnings 'uninitialized'; + shift @ARGV if( $ARGV[0] eq 'install' and @ARGV > 1 ) + } + +sub _process_options + { + my %options; + + push @ARGV, grep $_, split /\s+/, $ENV{CPAN_OPTS} || ''; + + # if no arguments, just drop into the shell + if( 0 == @ARGV ) { CPAN::shell(); exit 0 } + else + { + Getopt::Std::getopts( + join( '', @option_order ), \%options ); + \%options; + } + } + +sub _process_setup_options + { + my( $class, $options ) = @_; + + if( $options->{j} ) + { + $Method_table{j}[ $Method_table_index{code} ]->( $options->{j} ); + delete $options->{j}; + } + else + { + # this is what CPAN.pm would do otherwise + local $CPAN::Be_Silent = 1; + CPAN::HandleConfig->load( + # be_silent => 1, deprecated + write_file => 0, + ); + } + + $class->_turn_off_testing if $options->{T}; + + foreach my $o ( qw(F I w P M) ) + { + next unless exists $options->{$o}; + $Method_table{$o}[ $Method_table_index{code} ]->( $options->{$o} ); + delete $options->{$o}; + } + + if( $options->{o} ) + { + my @pairs = map { [ split /=/, $_, 2 ] } split /,/, $options->{o}; + foreach my $pair ( @pairs ) + { + my( $setting, $value ) = @$pair; + $CPAN::Config->{$setting} = $value; + # $logger->debug( "Setting [$setting] to [$value]" ); + } + delete $options->{o}; + } + + my $option_count = grep { $options->{$_} } @option_order; + no warnings 'uninitialized'; + + # don't count options that imply installation + foreach my $opt ( qw(f T) ) { # don't count force or notest + $option_count -= $options->{$opt}; + } + + # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + # if there are no options, set -i (this line fixes RT ticket 16915) + $options->{i}++ unless $option_count; + } + +sub _setup_environment { +# should we override or set defaults? If this were a true interactive +# session, we'd be in the CPAN shell. + +# https://github.com/Perl-Toolchain-Gang/toolchain-site/blob/master/lancaster-consensus.md + $ENV{NONINTERACTIVE_TESTING} = 1 unless defined $ENV{NONINTERACTIVE_TESTING}; + $ENV{PERL_MM_USE_DEFAULT} = 1 unless defined $ENV{PERL_MM_USE_DEFAULT}; + } + +=item run() + +Just do it. + +The C method returns 0 on success and a positive number on +failure. See the section on EXIT CODES for details on the values. + +=cut + +my $logger; + +sub run + { + my $class = shift; + + my $return_value = HEY_IT_WORKED; # assume that things will work + + $logger = $class->_init_logger; + $logger->debug( "Using logger from @{[ref $logger]}" ); + + $class->_hook_into_CPANpm_report; + $logger->debug( "Hooked into output" ); + + $class->_stupid_interface_hack_for_non_rtfmers; + $logger->debug( "Patched cargo culting" ); + + my $options = $class->_process_options; + $logger->debug( "Options are @{[Dumper($options)]}" ); + + $class->_process_setup_options( $options ); + + $class->_setup_environment( $options ); + + OPTION: foreach my $option ( @option_order ) + { + next unless $options->{$option}; + + my( $sub, $takes_args, $description ) = + map { $Method_table{$option}[ $Method_table_index{$_} ] } + qw( code takes_args description ); + + unless( ref $sub eq ref sub {} ) + { + $return_value = THE_PROGRAMMERS_AN_IDIOT; + last OPTION; + } + + $logger->info( "[$option] $description -- ignoring other arguments" ) + if( @ARGV && ! $takes_args ); + + $return_value = $sub->( \ @ARGV, $options ); + + last; + } + + return $return_value; + } + +{ +package + Local::Null::Logger; # hide from PAUSE + +sub new { bless \ my $x, $_[0] } +sub AUTOLOAD { + my $autoload = our $AUTOLOAD; + $autoload =~ s/.*://; + return if $autoload =~ /^(debug|trace)$/; + $CPAN::Frontend->mywarn(">($autoload): $_\n") + for split /[\r\n]+/, $_[1]; +} +sub DESTROY { 1 } +} + +# load a module without searching the default entry for the current +# directory +sub _safe_load_module { + my $name = shift; + + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; + + eval "require $name; 1"; +} + +sub _init_logger + { + my $log4perl_loaded = _safe_load_module("Log::Log4perl"); + + unless( $log4perl_loaded ) + { + print STDOUT "Loading internal logger. Log::Log4perl recommended for better logging\n"; + $logger = Local::Null::Logger->new; + return $logger; + } + + my $LEVEL = $ENV{CPANSCRIPT_LOGLEVEL} || 'INFO'; + + Log::Log4perl::init( \ <<"HERE" ); +log4perl.rootLogger=$LEVEL, A1 +log4perl.appender.A1=Log::Log4perl::Appender::Screen +log4perl.appender.A1.layout=PatternLayout +log4perl.appender.A1.layout.ConversionPattern=%m%n +HERE + + $logger = Log::Log4perl->get_logger( 'App::Cpan' ); + } + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + +sub _default + { + my( $args, $options ) = @_; + + my $switch = ''; + + # choose the option that we're going to use + # we'll deal with 'f' (force) later, so skip it + foreach my $option ( @CPAN_OPTIONS ) + { + next if ( $option eq 'f' or $option eq 'T' ); + next unless $options->{$option}; + $switch = $option; + last; + } + + # 1. with no switches, but arguments, use the default switch (install) + # 2. with no switches and no args, start the shell + # 3. With a switch but no args, die! These switches need arguments. + if( not $switch and @$args ) { $switch = $Default; } + elsif( not $switch and not @$args ) { return CPAN::shell() } + elsif( $switch and not @$args ) + { die "Nothing to $CPAN_METHODS{$switch}!\n"; } + + # Get and check the method from CPAN::Shell + my $method = $CPAN_METHODS{$switch}; + die "CPAN.pm cannot $method!\n" unless CPAN::Shell->can( $method ); + + # call the CPAN::Shell method, with force or notest if specified + my $action = do { + if( $options->{f} ) { sub { CPAN::Shell->force( $method, @_ ) } } + elsif( $options->{T} ) { sub { CPAN::Shell->notest( $method, @_ ) } } + else { sub { CPAN::Shell->$method( @_ ) } } + }; + + # How do I handle exit codes for multiple arguments? + my @errors = (); + + $options->{x} or _disable_guessers(); + + foreach my $arg ( @$args ) + { + # check the argument and perhaps capture typos + my $module = _expand_module( $arg ) or do { + $logger->error( "Skipping $arg because I couldn't find a matching namespace." ); + next; + }; + + _clear_cpanpm_output(); + $action->( $arg ); + + my $error = _cpanpm_output_indicates_failure(); + push @errors, $error if $error; + } + + return do { + if( @errors ) { $errors[0] } + else { HEY_IT_WORKED } + }; + + } + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + +=for comment + +CPAN.pm sends all the good stuff either to STDOUT, or to a temp +file if $CPAN::Be_Silent is set. I have to intercept that output +so I can find out what happened. + +=cut + +BEGIN { +my $scalar = ''; + +sub _hook_into_CPANpm_report + { + no warnings 'redefine'; + + *CPAN::Shell::myprint = sub { + my($self,$what) = @_; + $scalar .= $what; + $self->print_ornamented($what, + $CPAN::Config->{colorize_print}||'bold blue on_white', + ); + }; + + *CPAN::Shell::mywarn = sub { + my($self,$what) = @_; + $scalar .= $what; + $self->print_ornamented($what, + $CPAN::Config->{colorize_warn}||'bold red on_white' + ); + }; + + } + +sub _clear_cpanpm_output { $scalar = '' } + +sub _get_cpanpm_output { $scalar } + +# These are lines I don't care about in CPAN.pm output. If I can +# filter out the informational noise, I have a better chance to +# catch the error signal +my @skip_lines = ( + qr/^\QWarning \(usually harmless\)/, + qr/\bwill not store persistent state\b/, + qr(//hint//), + qr/^\s+reports\s+/, + qr/^Try the command/, + qr/^\s+$/, + qr/^to find objects/, + qr/^\s*Database was generated on/, + qr/^Going to read/, + qr|^\s+i\s+/|, # the i /Foo::Whatever/ line when it doesn't know + ); + +sub _get_cpanpm_last_line + { + my $fh; + + if( $] < 5.008 ) { + $fh = IO::Scalar->new( \ $scalar ); + } + else { + eval q{ open $fh, '<', \\ $scalar; }; + } + + my @lines = <$fh>; + + # This is a bit ugly. Once we examine a line, we have to + # examine the line before it and go through all of the same + # regexes. I could do something fancy, but this works. + REGEXES: { + foreach my $regex ( @skip_lines ) + { + if( $lines[-1] =~ m/$regex/ ) + { + pop @lines; + redo REGEXES; # we have to go through all of them for every line! + } + } + } + + $logger->debug( "Last interesting line of CPAN.pm output is:\n\t$lines[-1]" ); + + $lines[-1]; + } +} + +BEGIN { +my $epic_fail_words = join '|', + qw( Error stop(?:ping)? problems force not unsupported + fail(?:ed)? Cannot\s+install ); + +sub _cpanpm_output_indicates_failure + { + my $last_line = _get_cpanpm_last_line(); + + my $result = $last_line =~ /\b(?:$epic_fail_words)\b/i; + return A_MODULE_FAILED_TO_INSTALL if $last_line =~ /\b(?:Cannot\s+install)\b/i; + + $result || (); + } +} + +sub _cpanpm_output_indicates_success + { + my $last_line = _get_cpanpm_last_line(); + + my $result = $last_line =~ /\b(?:\s+-- OK|PASS)\b/; + $result || (); + } + +sub _cpanpm_output_is_vague + { + return FALSE if + _cpanpm_output_indicates_failure() || + _cpanpm_output_indicates_success(); + + return TRUE; + } + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # +sub _turn_on_warnings { + carp "Warnings are implemented yet"; + return HEY_IT_WORKED; + } + +sub _turn_off_testing { + $logger->debug( 'Trusting test report history' ); + $CPAN::Config->{trust_test_report_history} = 1; + return HEY_IT_WORKED; + } + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # +sub _print_help + { + $logger->info( "Use perldoc to read the documentation" ); + exec "perldoc $0"; + } + +sub _print_version # -v + { + $logger->info( + "$0 script version $VERSION, CPAN.pm version " . CPAN->VERSION ); + + return HEY_IT_WORKED; + } + +sub _print_details # -V + { + _print_version(); + + _check_install_dirs(); + + $logger->info( '-' x 50 . "\nChecking configured mirrors..." ); + foreach my $mirror ( @{ $CPAN::Config->{urllist} } ) { + _print_ping_report( $mirror ); + } + + $logger->info( '-' x 50 . "\nChecking for faster mirrors..." ); + + { + require CPAN::Mirrors; + + if ( $CPAN::Config->{connect_to_internet_ok} ) { + $CPAN::Frontend->myprint(qq{Trying to fetch a mirror list from the Internet\n}); + eval { CPAN::FTP->localize('MIRRORED.BY',File::Spec->catfile($CPAN::Config->{keep_source_where},'MIRRORED.BY'),3,1) } + or $CPAN::Frontend->mywarn(<<'HERE'); +We failed to get a copy of the mirror list from the Internet. +You will need to provide CPAN mirror URLs yourself. +HERE + $CPAN::Frontend->myprint("\n"); + } + + my $mirrors = CPAN::Mirrors->new( _mirror_file() ); + my @continents = $mirrors->find_best_continents; + + my @mirrors = $mirrors->get_mirrors_by_continents( $continents[0] ); + my @timings = $mirrors->get_mirrors_timings( \@mirrors ); + + foreach my $timing ( @timings ) { + $logger->info( sprintf "%s (%0.2f ms)", + $timing->hostname, $timing->rtt ); + } + } + + return HEY_IT_WORKED; + } + +sub _check_install_dirs + { + my $makepl_arg = $CPAN::Config->{makepl_arg}; + my $mbuildpl_arg = $CPAN::Config->{mbuildpl_arg}; + + my @custom_dirs; + # PERL_MM_OPT + push @custom_dirs, + $makepl_arg =~ m/INSTALL_BASE\s*=\s*(\S+)/g, + $mbuildpl_arg =~ m/--install_base\s*=\s*(\S+)/g; + + if( @custom_dirs ) { + foreach my $dir ( @custom_dirs ) { + _print_inc_dir_report( $dir ); + } + } + + # XXX: also need to check makepl_args, etc + + my @checks = ( + [ 'core', [ grep $_, @Config{qw(installprivlib installarchlib)} ] ], + [ 'vendor', [ grep $_, @Config{qw(installvendorlib installvendorarch)} ] ], + [ 'site', [ grep $_, @Config{qw(installsitelib installsitearch)} ] ], + [ 'PERL5LIB', _split_paths( $ENV{PERL5LIB} ) ], + [ 'PERLLIB', _split_paths( $ENV{PERLLIB} ) ], + ); + + $logger->info( '-' x 50 . "\nChecking install dirs..." ); + foreach my $tuple ( @checks ) { + my( $label ) = $tuple->[0]; + + $logger->info( "Checking $label" ); + $logger->info( "\tno directories for $label" ) unless @{ $tuple->[1] }; + foreach my $dir ( @{ $tuple->[1] } ) { + _print_inc_dir_report( $dir ); + } + } + + } + +sub _split_paths + { + [ map { _expand_filename( $_ ) } split /$Config{path_sep}/, $_[0] || '' ]; + } + + +=pod + +Stolen from File::Path::Expand + +=cut + +sub _expand_filename + { + my( $path ) = @_; + no warnings 'uninitialized'; + $logger->debug( "Expanding path $path\n" ); + $path =~ s{\A~([^/]+)?}{ + _home_of( $1 || $> ) || "~$1" + }e; + return $path; + } + +sub _home_of + { + require User::pwent; + my( $user ) = @_; + my $ent = User::pwent::getpw($user) or return; + return $ent->dir; + } + +sub _get_default_inc + { + require Config; + + [ @Config::Config{ _vars() }, '.' ]; + } + +sub _vars { + qw( + installarchlib + installprivlib + installsitearch + installsitelib + ); + } + +sub _ping_mirrors { + my $urls = $CPAN::Config->{urllist}; + require URI; + + foreach my $url ( @$urls ) { + my( $obj ) = URI->new( $url ); + next unless _is_pingable_scheme( $obj ); + my $host = $obj->host; + _print_ping_report( $obj ); + } + + } + +sub _is_pingable_scheme { + my( $uri ) = @_; + + $uri->scheme eq 'file' + } + +sub _mirror_file { + my $file = do { + my $file = 'MIRRORED.BY'; + my $local_path = File::Spec->catfile( + $CPAN::Config->{keep_source_where}, $file ); + + if( -e $local_path ) { $local_path } + else { + require CPAN::FTP; + CPAN::FTP->localize( $file, $local_path, 3, 1 ); + $local_path; + } + }; + } + +sub _find_good_mirrors { + require CPAN::Mirrors; + + my $mirrors = CPAN::Mirrors->new( _mirror_file() ); + + my @mirrors = $mirrors->best_mirrors( + how_many => 5, + verbose => 1, + ); + + foreach my $mirror ( @mirrors ) { + next unless eval { $mirror->can( 'http' ) }; + _print_ping_report( $mirror->http ); + } + + $CPAN::Config->{urllist} = [ + map { $_->http } @mirrors + ]; + } + +sub _print_inc_dir_report + { + my( $dir ) = shift; + + my $writeable = -w $dir ? '+' : '!!! (not writeable)'; + $logger->info( "\t$writeable $dir" ); + return -w $dir; + } + +sub _print_ping_report + { + my( $mirror ) = @_; + + my $rtt = eval { _get_ping_report( $mirror ) }; + my $result = $rtt ? sprintf "+ (%4d ms)", $rtt * 1000 : '!'; + + $logger->info( + sprintf "\t%s %s", $result, $mirror + ); + } + +sub _get_ping_report + { + require URI; + my( $mirror ) = @_; + my( $url ) = ref $mirror ? $mirror : URI->new( $mirror ); #XXX + require Net::Ping; + + my $ping = Net::Ping->new( 'tcp', 1 ); + + if( $url->scheme eq 'file' ) { + return -e $url->file; + } + + my( $port ) = $url->port; + + return unless $port; + + if ( $ping->can('port_number') ) { + $ping->port_number($port); + } + else { + $ping->{'port_num'} = $port; + } + + $ping->hires(1) if $ping->can( 'hires' ); + my( $alive, $rtt ) = eval{ $ping->ping( $url->host ) }; + $alive ? $rtt : undef; + } + +sub _load_local_lib # -I + { + $logger->debug( "Loading local::lib" ); + + my $rc = _safe_load_module("local::lib"); + unless( $rc ) { + $logger->logdie( "Could not load local::lib" ); + } + + local::lib->import; + + return HEY_IT_WORKED; + } + +sub _use_these_mirrors # -M + { + $logger->debug( "Setting per session mirrors" ); + unless( $_[0] ) { + $logger->logdie( "The -M switch requires a comma-separated list of mirrors" ); + } + + $CPAN::Config->{urllist} = [ split /,/, $_[0] ]; + + $logger->debug( "Mirrors are @{$CPAN::Config->{urllist}}" ); + + } + +sub _create_autobundle + { + $logger->info( + "Creating autobundle in $CPAN::Config->{cpan_home}/Bundle" ); + + CPAN::Shell->autobundle; + + return HEY_IT_WORKED; + } + +sub _recompile + { + $logger->info( "Recompiling dynamically-loaded extensions" ); + + CPAN::Shell->recompile; + + return HEY_IT_WORKED; + } + +sub _upgrade + { + $logger->info( "Upgrading all modules" ); + + CPAN::Shell->upgrade(); + + return HEY_IT_WORKED; + } + +sub _shell + { + $logger->info( "Dropping into shell" ); + + CPAN::shell(); + + return HEY_IT_WORKED; + } + +sub _load_config # -j + { + my $file = shift || ''; + + # should I clear out any existing config here? + $CPAN::Config = {}; + delete $INC{'CPAN/Config.pm'}; + croak( "Config file [$file] does not exist!\n" ) unless -e $file; + + my $rc = eval "require '$file'"; + + # CPAN::HandleConfig::require_myconfig_or_config looks for this + $INC{'CPAN/MyConfig.pm'} = 'fake out!'; + + # CPAN::HandleConfig::load looks for this + $CPAN::Config_loaded = 'fake out'; + + croak( "Could not load [$file]: $@\n") unless $rc; + + return HEY_IT_WORKED; + } + +sub _dump_config # -J + { + my $args = shift; + require Data::Dumper; + + my $fh = $args->[0] || \*STDOUT; + + local $Data::Dumper::Sortkeys = 1; + my $dd = Data::Dumper->new( + [$CPAN::Config], + ['$CPAN::Config'] + ); + + print $fh $dd->Dump, "\n1;\n__END__\n"; + + return HEY_IT_WORKED; + } + +sub _lock_lobotomy # -F + { + no warnings 'redefine'; + + *CPAN::_flock = sub { 1 }; + *CPAN::checklock = sub { 1 }; + + return HEY_IT_WORKED; + } + +sub _download + { + my $args = shift; + + local $CPAN::DEBUG = 1; + + my %paths; + + foreach my $arg ( @$args ) { + $logger->info( "Checking $arg" ); + + my $module = _expand_module( $arg ) or next; + my $path = $module->cpan_file; + + $logger->debug( "Inst file would be $path\n" ); + + $paths{$arg} = _get_file( _make_path( $path ) ); + + $logger->info( "Downloaded [$arg] to [$paths{$module}]" ); + } + + return \%paths; + } + +sub _make_path { join "/", qw(authors id), $_[0] } + +sub _get_file + { + my $path = shift; + + my $loaded = _safe_load_module("LWP::Simple"); + croak "You need LWP::Simple to use features that fetch files from CPAN\n" + unless $loaded; + + my $file = substr $path, rindex( $path, '/' ) + 1; + my $store_path = catfile( cwd(), $file ); + $logger->debug( "Store path is $store_path" ); + + foreach my $site ( @{ $CPAN::Config->{urllist} } ) + { + my $fetch_path = join "/", $site, $path; + $logger->debug( "Trying $fetch_path" ); + last if LWP::Simple::getstore( $fetch_path, $store_path ); + } + + return $store_path; + } + +sub _gitify + { + my $args = shift; + + my $loaded = _safe_load_module("Archive::Extract"); + croak "You need Archive::Extract to use features that gitify distributions\n" + unless $loaded; + + my $starting_dir = cwd(); + + foreach my $arg ( @$args ) + { + $logger->info( "Checking $arg" ); + my $store_paths = _download( [ $arg ] ); + $logger->debug( "gitify Store path is $store_paths->{$arg}" ); + my $dirname = dirname( $store_paths->{$arg} ); + + my $ae = Archive::Extract->new( archive => $store_paths->{$arg} ); + $ae->extract( to => $dirname ); + + chdir $ae->extract_path; + + my $git = $ENV{GIT_COMMAND} || '/usr/local/bin/git'; + croak "Could not find $git" unless -e $git; + croak "$git is not executable" unless -x $git; + + # can we do this in Pure Perl? + system( $git, 'init' ); + system( $git, qw( add . ) ); + system( $git, qw( commit -a -m ), 'initial import' ); + } + + chdir $starting_dir; + + return HEY_IT_WORKED; + } + +sub _show_Changes + { + my $args = shift; + + foreach my $arg ( @$args ) + { + $logger->info( "Checking $arg\n" ); + + my $module = _expand_module( $arg ) or next; + + my $out = _get_cpanpm_output(); + + next unless eval { $module->inst_file }; + #next if $module->uptodate; + + ( my $id = $module->id() ) =~ s/::/\-/; + + my $url = "http://search.cpan.org/~" . lc( $module->userid ) . "/" . + $id . "-" . $module->cpan_version() . "/"; + + #print "URL: $url\n"; + _get_changes_file($url); + } + + return HEY_IT_WORKED; + } + +sub _get_changes_file + { + croak "Reading Changes files requires LWP::Simple and URI\n" + unless _safe_load_module("LWP::Simple") && _safe_load_module("URI"); + + my $url = shift; + + my $content = LWP::Simple::get( $url ); + $logger->info( "Got $url ..." ) if defined $content; + #print $content; + + my( $change_link ) = $content =~ m|Changes|gi; + + my $changes_url = URI->new_abs( $change_link, $url ); + $logger->debug( "Change link is: $changes_url" ); + + my $changes = LWP::Simple::get( $changes_url ); + + print $changes; + + return HEY_IT_WORKED; + } + +sub _show_Author + { + my $args = shift; + + foreach my $arg ( @$args ) + { + my $module = _expand_module( $arg ) or next; + + unless( $module ) + { + $logger->info( "Didn't find a $arg module, so no author!" ); + next; + } + + my $author = CPAN::Shell->expand( "Author", $module->userid ); + + next unless $module->userid; + + printf "%-25s %-8s %-25s %s\n", + $arg, $module->userid, $author->email, $author->name; + } + + return HEY_IT_WORKED; + } + +sub _show_Details + { + my $args = shift; + + foreach my $arg ( @$args ) + { + my $module = _expand_module( $arg ) or next; + my $author = CPAN::Shell->expand( "Author", $module->userid ); + + next unless $module->userid; + + print "$arg\n", "-" x 73, "\n\t"; + print join "\n\t", + $module->description ? $module->description : "(no description)", + $module->cpan_file ? $module->cpan_file : "(no cpanfile)", + $module->inst_file ? $module->inst_file :"(no installation file)" , + 'Installed: ' . ($module->inst_version ? $module->inst_version : "not installed"), + 'CPAN: ' . $module->cpan_version . ' ' . + ($module->uptodate ? "" : "Not ") . "up to date", + $author->fullname . " (" . $module->userid . ")", + $author->email; + print "\n\n"; + + } + + return HEY_IT_WORKED; + } + +BEGIN { +my $modules; +sub _get_all_namespaces + { + return $modules if $modules; + $modules = [ map { $_->id } CPAN::Shell->expand( "Module", "/./" ) ]; + } +} + +sub _show_out_of_date + { + my $modules = _get_all_namespaces(); + + printf "%-40s %6s %6s\n", "Module Name", "Local", "CPAN"; + print "-" x 73, "\n"; + + foreach my $module ( @$modules ) + { + next unless $module = _expand_module($module); + next unless $module->inst_file; + next if $module->uptodate; + printf "%-40s %.4f %.4f\n", + $module->id, + $module->inst_version ? $module->inst_version : '', + $module->cpan_version; + } + + return HEY_IT_WORKED; + } + +sub _show_author_mods + { + my $args = shift; + + my %hash = map { lc $_, 1 } @$args; + + my $modules = _get_all_namespaces(); + + foreach my $module ( @$modules ) { + next unless exists $hash{ lc $module->userid }; + print $module->id, "\n"; + } + + return HEY_IT_WORKED; + } + +sub _list_all_mods # -l + { + require File::Find; + + my $args = shift; + + + my $fh = \*STDOUT; + + INC: foreach my $inc ( @INC ) + { + my( $wanted, $reporter ) = _generator(); + File::Find::find( { wanted => $wanted }, $inc ); + + my $count = 0; + FILE: foreach my $file ( @{ $reporter->() } ) + { + my $version = _parse_version_safely( $file ); + + my $module_name = _path_to_module( $inc, $file ); + next FILE unless defined $module_name; + + print $fh "$module_name\t$version\n"; + + #last if $count++ > 5; + } + } + + return HEY_IT_WORKED; + } + +sub _generator + { + my @files = (); + + sub { push @files, + File::Spec->canonpath( $File::Find::name ) + if m/\A\w+\.pm\z/ }, + sub { \@files }, + } + +sub _parse_version_safely # stolen from PAUSE's mldistwatch, but refactored + { + my( $file ) = @_; + + local $/ = "\n"; + local $_; # don't mess with the $_ in the map calling this + + return unless open FILE, "<$file"; + + my $in_pod = 0; + my $version; + while( ) + { + chomp; + $in_pod = /^=(?!cut)/ ? 1 : /^=cut/ ? 0 : $in_pod; + next if $in_pod || /^\s*#/; + + next unless /([\$*])(([\w\:\']*)\bVERSION)\b.*\=/; + my( $sigil, $var ) = ( $1, $2 ); + + $version = _eval_version( $_, $sigil, $var ); + last; + } + close FILE; + + return 'undef' unless defined $version; + + return $version; + } + +sub _eval_version + { + my( $line, $sigil, $var ) = @_; + + # split package line to hide from PAUSE + my $eval = qq{ + package + ExtUtils::MakeMaker::_version; + + local $sigil$var; + \$$var=undef; do { + $line + }; \$$var + }; + + my $version = do { + local $^W = 0; + no strict; + eval( $eval ); + }; + + return $version; + } + +sub _path_to_module + { + my( $inc, $path ) = @_; + return if length $path < length $inc; + + my $module_path = substr( $path, length $inc ); + $module_path =~ s/\.pm\z//; + + # XXX: this is cheating and doesn't handle everything right + my @dirs = grep { ! /\W/ } File::Spec->splitdir( $module_path ); + shift @dirs; + + my $module_name = join "::", @dirs; + + return $module_name; + } + + +sub _expand_module + { + my( $module ) = @_; + + my $expanded = CPAN::Shell->expandany( $module ); + return $expanded if $expanded; + $expanded = CPAN::Shell->expand( "Module", $module ); + unless( defined $expanded ) { + $logger->error( "Could not expand [$module]. Check the module name." ); + my $threshold = ( + grep { int } + sort { length $a <=> length $b } + length($module)/4, 4 + )[0]; + + my $guesses = _guess_at_module_name( $module, $threshold ); + if( defined $guesses and @$guesses ) { + $logger->info( "Perhaps you meant one of these:" ); + foreach my $guess ( @$guesses ) { + $logger->info( "\t$guess" ); + } + } + return; + } + + return $expanded; + } + +my $guessers = [ + [ qw( Text::Levenshtein::XS distance 7 1 ) ], + [ qw( Text::Levenshtein::Damerau::XS xs_edistance 7 1 ) ], + + [ qw( Text::Levenshtein distance 7 1 ) ], + [ qw( Text::Levenshtein::Damerau::PP pp_edistance 7 1 ) ], + + ]; + +sub _disable_guessers + { + $_->[-1] = 0 for @$guessers; + } + +# for -x +sub _guess_namespace + { + my $args = shift; + + foreach my $arg ( @$args ) + { + $logger->debug( "Checking $arg" ); + my $guesses = _guess_at_module_name( $arg ); + + foreach my $guess ( @$guesses ) { + print $guess, "\n"; + } + } + + return HEY_IT_WORKED; + } + +sub _list_all_namespaces { + my $modules = _get_all_namespaces(); + + foreach my $module ( @$modules ) { + print $module, "\n"; + } + } + +BEGIN { +my $distance; +my $_threshold; +my $can_guess; +my $shown_help = 0; +sub _guess_at_module_name + { + my( $target, $threshold ) = @_; + + unless( defined $distance ) { + foreach my $try ( @$guessers ) { + $can_guess = eval "require $try->[0]; 1" or next; + + $try->[-1] or next; # disabled + no strict 'refs'; + $distance = \&{ join "::", @$try[0,1] }; + $threshold ||= $try->[2]; + } + } + $_threshold ||= $threshold; + + unless( $distance ) { + unless( $shown_help ) { + my $modules = join ", ", map { $_->[0] } @$guessers; + substr $modules, rindex( $modules, ',' ), 1, ', and'; + + # Should this be colorized? + if( $can_guess ) { + $logger->info( "I can suggest names if you provide the -x option on invocation." ); + } + else { + $logger->info( "I can suggest names if you install one of $modules" ); + $logger->info( "and you provide the -x option on invocation." ); + } + $shown_help++; + } + return; + } + + my $modules = _get_all_namespaces(); + $logger->info( "Checking " . @$modules . " namespaces for close match suggestions" ); + + my %guesses; + foreach my $guess ( @$modules ) { + my $distance = $distance->( $target, $guess ); + next if $distance > $_threshold; + $guesses{$guess} = $distance; + } + + my @guesses = sort { $guesses{$a} <=> $guesses{$b} } keys %guesses; + return [ grep { defined } @guesses[0..9] ]; + } +} + +1; + +=back + +=head1 EXIT VALUES + +The script exits with zero if it thinks that everything worked, or a +positive number if it thinks that something failed. Note, however, that +in some cases it has to divine a failure by the output of things it does +not control. For now, the exit codes are vague: + + 1 An unknown error + + 2 The was an external problem + + 4 There was an internal problem with the script + + 8 A module failed to install + +=head1 TO DO + +* There is initial support for Log4perl if it is available, but I +haven't gone through everything to make the NullLogger work out +correctly if Log4perl is not installed. + +* When I capture CPAN.pm output, I need to check for errors and +report them to the user. + +* Warnings switch + +* Check then exit + +=head1 BUGS + +* none noted + +=head1 SEE ALSO + +L, L + +=head1 SOURCE AVAILABILITY + +This code is in Github in the CPAN.pm repository: + + https://github.com/andk/cpanpm + +The source used to be tracked separately in another GitHub repo, +but the canonical source is now in the above repo. + +=head1 CREDITS + +Japheth Cleaver added the bits to allow a forced install (C<-f>). + +Jim Brandt suggest and provided the initial implementation for the +up-to-date and Changes features. + +Adam Kennedy pointed out that C causes problems on Windows +where this script ends up with a .bat extension + +David Golden helps integrate this into the C repos. + +=head1 AUTHOR + +brian d foy, C<< >> + +=head1 COPYRIGHT + +Copyright (c) 2001-2015, brian d foy, All Rights Reserved. + +You may redistribute this under the same terms as Perl itself. + +=cut diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove.pm new file mode 100644 index 0000000000..9298726d24 --- /dev/null +++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove.pm @@ -0,0 +1,829 @@ +package App::Prove; + +use strict; +use warnings; + +use TAP::Harness::Env; +use Text::ParseWords qw(shellwords); +use File::Spec; +use Getopt::Long; +use App::Prove::State; +use Carp; + +use base 'TAP::Object'; + +=head1 NAME + +App::Prove - Implements the C command. + +=head1 VERSION + +Version 3.42 + +=cut + +our $VERSION = '3.42'; + +=head1 DESCRIPTION + +L provides a command, C, which runs a TAP based +test suite and prints a report. The C command is a minimal +wrapper around an instance of this module. + +=head1 SYNOPSIS + + use App::Prove; + + my $app = App::Prove->new; + $app->process_args(@ARGV); + $app->run; + +=cut + +use constant IS_WIN32 => ( $^O =~ /^(MS)?Win32$/ ); +use constant IS_VMS => $^O eq 'VMS'; +use constant IS_UNIXY => !( IS_VMS || IS_WIN32 ); + +use constant STATE_FILE => IS_UNIXY ? '.prove' : '_prove'; +use constant RC_FILE => IS_UNIXY ? '.proverc' : '_proverc'; + +use constant PLUGINS => 'App::Prove::Plugin'; + +my @ATTR; + +BEGIN { + @ATTR = qw( + archive argv blib show_count color directives exec failures comments + formatter harness includes modules plugins jobs lib merge parse quiet + really_quiet recurse backwards shuffle taint_fail taint_warn timer + verbose warnings_fail warnings_warn show_help show_man show_version + state_class test_args state dry extensions ignore_exit rules state_manager + normalize sources tapversion trap + statefile + ); + __PACKAGE__->mk_methods(@ATTR); +} + +=head1 METHODS + +=head2 Class Methods + +=head3 C + +Create a new C. Optionally a hash ref of attribute +initializers may be passed. + +=cut + +# new() implementation supplied by TAP::Object + +sub _initialize { + my $self = shift; + my $args = shift || {}; + + my @is_array = qw( + argv rc_opts includes modules state plugins rules sources + ); + + # setup defaults: + for my $key (@is_array) { + $self->{$key} = []; + } + + for my $attr (@ATTR) { + if ( exists $args->{$attr} ) { + + # TODO: Some validation here + $self->{$attr} = $args->{$attr}; + } + } + + $self->state_class('App::Prove::State'); + return $self; +} + +=head3 C + +Getter/setter for the name of the class used for maintaining state. This +class should either subclass from C or provide an identical +interface. + +=head3 C + +Getter/setter for the instance of the C. + +=cut + +=head3 C + + $prove->add_rc_file('myproj/.proverc'); + +Called before C to prepend the contents of an rc file to +the options. + +=cut + +sub add_rc_file { + my ( $self, $rc_file ) = @_; + + local *RC; + open RC, "<$rc_file" or croak "Can't read $rc_file ($!)"; + while ( defined( my $line = ) ) { + push @{ $self->{rc_opts} }, + grep { defined and not /^#/ } + $line =~ m{ ' ([^']*) ' | " ([^"]*) " | (\#.*) | (\S+) }xg; + } + close RC; +} + +=head3 C + + $prove->process_args(@args); + +Processes the command-line arguments. Attributes will be set +appropriately. Any filenames may be found in the C attribute. + +Dies on invalid arguments. + +=cut + +sub process_args { + my $self = shift; + + my @rc = RC_FILE; + unshift @rc, glob '~/' . RC_FILE if IS_UNIXY; + + # Preprocess meta-args. + my @args; + while ( defined( my $arg = shift ) ) { + if ( $arg eq '--norc' ) { + @rc = (); + } + elsif ( $arg eq '--rc' ) { + defined( my $rc = shift ) + or croak "Missing argument to --rc"; + push @rc, $rc; + } + elsif ( $arg =~ m{^--rc=(.+)$} ) { + push @rc, $1; + } + else { + push @args, $arg; + } + } + + # Everything after the arisdottle '::' gets passed as args to + # test programs. + if ( defined( my $stop_at = _first_pos( '::', @args ) ) ) { + my @test_args = splice @args, $stop_at; + shift @test_args; + $self->{test_args} = \@test_args; + } + + # Grab options from RC files + $self->add_rc_file($_) for grep -f, @rc; + unshift @args, @{ $self->{rc_opts} }; + + if ( my @bad = map {"-$_"} grep {/^-(man|help)$/} @args ) { + die "Long options should be written with two dashes: ", + join( ', ', @bad ), "\n"; + } + + # And finally... + + { + local @ARGV = @args; + Getopt::Long::Configure(qw(no_ignore_case bundling pass_through)); + + # Don't add coderefs to GetOptions + GetOptions( + 'v|verbose' => \$self->{verbose}, + 'f|failures' => \$self->{failures}, + 'o|comments' => \$self->{comments}, + 'l|lib' => \$self->{lib}, + 'b|blib' => \$self->{blib}, + 's|shuffle' => \$self->{shuffle}, + 'color!' => \$self->{color}, + 'colour!' => \$self->{color}, + 'count!' => \$self->{show_count}, + 'c' => \$self->{color}, + 'D|dry' => \$self->{dry}, + 'ext=s@' => sub { + my ( $opt, $val ) = @_; + + # Workaround for Getopt::Long 2.25 handling of + # multivalue options + push @{ $self->{extensions} ||= [] }, $val; + }, + 'harness=s' => \$self->{harness}, + 'ignore-exit' => \$self->{ignore_exit}, + 'source=s@' => $self->{sources}, + 'formatter=s' => \$self->{formatter}, + 'r|recurse' => \$self->{recurse}, + 'reverse' => \$self->{backwards}, + 'p|parse' => \$self->{parse}, + 'q|quiet' => \$self->{quiet}, + 'Q|QUIET' => \$self->{really_quiet}, + 'e|exec=s' => \$self->{exec}, + 'm|merge' => \$self->{merge}, + 'I=s@' => $self->{includes}, + 'M=s@' => $self->{modules}, + 'P=s@' => $self->{plugins}, + 'state=s@' => $self->{state}, + 'statefile=s' => \$self->{statefile}, + 'directives' => \$self->{directives}, + 'h|help|?' => \$self->{show_help}, + 'H|man' => \$self->{show_man}, + 'V|version' => \$self->{show_version}, + 'a|archive=s' => \$self->{archive}, + 'j|jobs=i' => \$self->{jobs}, + 'timer' => \$self->{timer}, + 'T' => \$self->{taint_fail}, + 't' => \$self->{taint_warn}, + 'W' => \$self->{warnings_fail}, + 'w' => \$self->{warnings_warn}, + 'normalize' => \$self->{normalize}, + 'rules=s@' => $self->{rules}, + 'tapversion=s' => \$self->{tapversion}, + 'trap' => \$self->{trap}, + ) or croak('Unable to continue'); + + # Stash the remainder of argv for later + $self->{argv} = [@ARGV]; + } + + return; +} + +sub _first_pos { + my $want = shift; + for ( 0 .. $#_ ) { + return $_ if $_[$_] eq $want; + } + return; +} + +sub _help { + my ( $self, $verbosity ) = @_; + + eval('use Pod::Usage 1.12 ()'); + if ( my $err = $@ ) { + die 'Please install Pod::Usage for the --help option ' + . '(or try `perldoc prove`.)' + . "\n ($@)"; + } + + Pod::Usage::pod2usage( { -verbose => $verbosity } ); + + return; +} + +sub _color_default { + my $self = shift; + + return -t STDOUT && !$ENV{HARNESS_NOTTY}; +} + +sub _get_args { + my $self = shift; + + my %args; + + $args{trap} = 1 if $self->trap; + + if ( defined $self->color ? $self->color : $self->_color_default ) { + $args{color} = 1; + } + if ( !defined $self->show_count ) { + $args{show_count} = 1; + } + else { + $args{show_count} = $self->show_count; + } + + if ( $self->archive ) { + $self->require_harness( archive => 'TAP::Harness::Archive' ); + $args{archive} = $self->archive; + } + + if ( my $jobs = $self->jobs ) { + $args{jobs} = $jobs; + } + + if ( my $harness_opt = $self->harness ) { + $self->require_harness( harness => $harness_opt ); + } + + if ( my $formatter = $self->formatter ) { + $args{formatter_class} = $formatter; + } + + for my $handler ( @{ $self->sources } ) { + my ( $name, $config ) = $self->_parse_source($handler); + $args{sources}->{$name} = $config; + } + + if ( $self->ignore_exit ) { + $args{ignore_exit} = 1; + } + + if ( $self->taint_fail && $self->taint_warn ) { + die '-t and -T are mutually exclusive'; + } + + if ( $self->warnings_fail && $self->warnings_warn ) { + die '-w and -W are mutually exclusive'; + } + + for my $a (qw( lib switches )) { + my $method = "_get_$a"; + my $val = $self->$method(); + $args{$a} = $val if defined $val; + } + + # Handle verbose, quiet, really_quiet flags + my %verb_map = ( verbose => 1, quiet => -1, really_quiet => -2, ); + + my @verb_adj = grep {$_} map { $self->$_() ? $verb_map{$_} : 0 } + keys %verb_map; + + die "Only one of verbose, quiet or really_quiet should be specified\n" + if @verb_adj > 1; + + $args{verbosity} = shift @verb_adj || 0; + + for my $a (qw( merge failures comments timer directives normalize )) { + $args{$a} = 1 if $self->$a(); + } + + $args{errors} = 1 if $self->parse; + + # defined but zero-length exec runs test files as binaries + $args{exec} = [ split( /\s+/, $self->exec ) ] + if ( defined( $self->exec ) ); + + $args{version} = $self->tapversion if defined( $self->tapversion ); + + if ( defined( my $test_args = $self->test_args ) ) { + $args{test_args} = $test_args; + } + + if ( @{ $self->rules } ) { + my @rules; + for ( @{ $self->rules } ) { + if (/^par=(.*)/) { + push @rules, $1; + } + elsif (/^seq=(.*)/) { + push @rules, { seq => $1 }; + } + } + $args{rules} = { par => [@rules] }; + } + $args{harness_class} = $self->{harness_class} if $self->{harness_class}; + + return \%args; +} + +sub _find_module { + my ( $self, $class, @search ) = @_; + + croak "Bad module name $class" + unless $class =~ /^ \w+ (?: :: \w+ ) *$/x; + + for my $pfx (@search) { + my $name = join( '::', $pfx, $class ); + eval "require $name"; + return $name unless $@; + } + + eval "require $class"; + return $class unless $@; + return; +} + +sub _load_extension { + my ( $self, $name, @search ) = @_; + + my @args = (); + if ( $name =~ /^(.*?)=(.*)/ ) { + $name = $1; + @args = split( /,/, $2 ); + } + + if ( my $class = $self->_find_module( $name, @search ) ) { + $class->import(@args); + if ( $class->can('load') ) { + $class->load( { app_prove => $self, args => [@args] } ); + } + } + else { + croak "Can't load module $name"; + } +} + +sub _load_extensions { + my ( $self, $ext, @search ) = @_; + $self->_load_extension( $_, @search ) for @$ext; +} + +sub _parse_source { + my ( $self, $handler ) = @_; + + # Load any options. + ( my $opt_name = lc $handler ) =~ s/::/-/g; + local @ARGV = @{ $self->{argv} }; + my %config; + Getopt::Long::GetOptions( + "$opt_name-option=s%" => sub { + my ( $name, $k, $v ) = @_; + if ( $v =~ /(? $v; + } + else { + $config{$k} = $v; + } + } + } + ); + $self->{argv} = \@ARGV; + return ( $handler, \%config ); +} + +=head3 C + +Perform whatever actions the command line args specified. The C +command line tool consists of the following code: + + use App::Prove; + + my $app = App::Prove->new; + $app->process_args(@ARGV); + exit( $app->run ? 0 : 1 ); # if you need the exit code + +=cut + +sub run { + my $self = shift; + + unless ( $self->state_manager ) { + $self->state_manager( + $self->state_class->new( { store => $self->statefile || STATE_FILE } ) ); + } + + if ( $self->show_help ) { + $self->_help(1); + } + elsif ( $self->show_man ) { + $self->_help(2); + } + elsif ( $self->show_version ) { + $self->print_version; + } + elsif ( $self->dry ) { + print "$_\n" for $self->_get_tests; + } + else { + + $self->_load_extensions( $self->modules ); + $self->_load_extensions( $self->plugins, PLUGINS ); + + local $ENV{TEST_VERBOSE} = 1 if $self->verbose; + + return $self->_runtests( $self->_get_args, $self->_get_tests ); + } + + return 1; +} + +sub _get_tests { + my $self = shift; + + my $state = $self->state_manager; + my $ext = $self->extensions; + $state->extensions($ext) if defined $ext; + if ( defined( my $state_switch = $self->state ) ) { + $state->apply_switch(@$state_switch); + } + + my @tests = $state->get_tests( $self->recurse, @{ $self->argv } ); + + $self->_shuffle(@tests) if $self->shuffle; + @tests = reverse @tests if $self->backwards; + + return @tests; +} + +sub _runtests { + my ( $self, $args, @tests ) = @_; + my $harness = TAP::Harness::Env->create($args); + + my $state = $self->state_manager; + + $harness->callback( + after_test => sub { + $state->observe_test(@_); + } + ); + + $harness->callback( + after_runtests => sub { + $state->commit(@_); + } + ); + + my $aggregator = $harness->runtests(@tests); + + return !$aggregator->has_errors; +} + +sub _get_switches { + my $self = shift; + my @switches; + + # notes that -T or -t must be at the front of the switches! + if ( $self->taint_fail ) { + push @switches, '-T'; + } + elsif ( $self->taint_warn ) { + push @switches, '-t'; + } + if ( $self->warnings_fail ) { + push @switches, '-W'; + } + elsif ( $self->warnings_warn ) { + push @switches, '-w'; + } + + return @switches ? \@switches : (); +} + +sub _get_lib { + my $self = shift; + my @libs; + if ( $self->lib ) { + push @libs, 'lib'; + } + if ( $self->blib ) { + push @libs, 'blib/lib', 'blib/arch'; + } + if ( @{ $self->includes } ) { + push @libs, @{ $self->includes }; + } + + #24926 + @libs = map { File::Spec->rel2abs($_) } @libs; + + # Huh? + return @libs ? \@libs : (); +} + +sub _shuffle { + my $self = shift; + + # Fisher-Yates shuffle + my $i = @_; + while ($i) { + my $j = rand $i--; + @_[ $i, $j ] = @_[ $j, $i ]; + } + return; +} + +=head3 C + +Load a harness replacement class. + + $prove->require_harness($for => $class_name); + +=cut + +sub require_harness { + my ( $self, $for, $class ) = @_; + + my ($class_name) = $class =~ /^(\w+(?:::\w+)*)/; + + # Emulate Perl's -MModule=arg1,arg2 behaviour + $class =~ s!^(\w+(?:::\w+)*)=(.*)$!$1 split(/,/,q{$2})!; + + eval("use $class;"); + die "$class_name is required to use the --$for feature: $@" if $@; + + $self->{harness_class} = $class_name; + + return; +} + +=head3 C + +Display the version numbers of the loaded L and the +current Perl. + +=cut + +sub print_version { + my $self = shift; + require TAP::Harness; + printf( + "TAP::Harness v%s and Perl v%vd\n", + $TAP::Harness::VERSION, $^V + ); + + return; +} + +1; + +# vim:ts=4:sw=4:et:sta + +__END__ + +=head2 Attributes + +After command line parsing the following attributes reflect the values +of the corresponding command line switches. They may be altered before +calling C. + +=over + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=item C + +=back + +=head1 PLUGINS + +C provides support for 3rd-party plugins. These are currently +loaded at run-time, I arguments have been parsed (so you can not +change the way arguments are processed, sorry), typically with the +C<< -PI >> switch, eg: + + prove -PMyPlugin + +This will search for a module named C, or failing +that, C. If the plugin can't be found, C will complain & exit. + +You can pass an argument to your plugin by appending an C<=> after the plugin +name, eg C<-PMyPlugin=foo>. You can pass multiple arguments using commas: + + prove -PMyPlugin=foo,bar,baz + +These are passed in to your plugin's C class method (if it has one), +along with a reference to the C object that is invoking your plugin: + + sub load { + my ($class, $p) = @_; + + my @args = @{ $p->{args} }; + # @args will contain ( 'foo', 'bar', 'baz' ) + $p->{app_prove}->do_something; + ... + } + +Note that the user's arguments are also passed to your plugin's C +function as a list, eg: + + sub import { + my ($class, @args) = @_; + # @args will contain ( 'foo', 'bar', 'baz' ) + ... + } + +This is for backwards compatibility, and may be deprecated in the future. + +=head2 Sample Plugin + +Here's a sample plugin, for your reference: + + package App::Prove::Plugin::Foo; + + # Sample plugin, try running with: + # prove -PFoo=bar -r -j3 + # prove -PFoo -Q + # prove -PFoo=bar,My::Formatter + + use strict; + use warnings; + + sub load { + my ($class, $p) = @_; + my @args = @{ $p->{args} }; + my $app = $p->{app_prove}; + + print "loading plugin: $class, args: ", join(', ', @args ), "\n"; + + # turn on verbosity + $app->verbose( 1 ); + + # set the formatter? + $app->formatter( $args[1] ) if @args > 1; + + # print some of App::Prove's state: + for my $attr (qw( jobs quiet really_quiet recurse verbose )) { + my $val = $app->$attr; + $val = 'undef' unless defined( $val ); + print "$attr: $val\n"; + } + + return 1; + } + + 1; + +=head1 SEE ALSO + +L, L + +=cut diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State.pm new file mode 100644 index 0000000000..0b61a82459 --- /dev/null +++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State.pm @@ -0,0 +1,548 @@ +package App::Prove::State; + +use strict; +use warnings; + +use File::Find; +use File::Spec; +use Carp; + +use App::Prove::State::Result; +use TAP::Parser::YAMLish::Reader (); +use TAP::Parser::YAMLish::Writer (); +use base 'TAP::Base'; + +BEGIN { + __PACKAGE__->mk_methods('result_class'); +} + +use constant IS_WIN32 => ( $^O =~ /^(MS)?Win32$/ ); +use constant NEED_GLOB => IS_WIN32; + +=head1 NAME + +App::Prove::State - State storage for the C command. + +=head1 VERSION + +Version 3.42 + +=cut + +our $VERSION = '3.42'; + +=head1 DESCRIPTION + +The C command supports a C<--state> option that instructs it to +store persistent state across runs. This module implements that state +and the operations that may be performed on it. + +=head1 SYNOPSIS + + # Re-run failed tests + $ prove --state=failed,save -rbv + +=cut + +=head1 METHODS + +=head2 Class Methods + +=head3 C + +Accepts a hashref with the following key/value pairs: + +=over 4 + +=item * C + +The filename of the data store holding the data that App::Prove::State reads. + +=item * C (optional) + +The test name extensions. Defaults to C<.t>. + +=item * C (optional) + +The name of the C. Defaults to C. + +=back + +=cut + +# override TAP::Base::new: +sub new { + my $class = shift; + my %args = %{ shift || {} }; + + my $self = bless { + select => [], + seq => 1, + store => delete $args{store}, + extensions => ( delete $args{extensions} || ['.t'] ), + result_class => + ( delete $args{result_class} || 'App::Prove::State::Result' ), + }, $class; + + $self->{_} = $self->result_class->new( + { tests => {}, + generation => 1, + } + ); + my $store = $self->{store}; + $self->load($store) + if defined $store && -f $store; + + return $self; +} + +=head2 C + +Getter/setter for the name of the class used for tracking test results. This +class should either subclass from C or provide an +identical interface. + +=cut + +=head2 C + +Get or set the list of extensions that files must have in order to be +considered tests. Defaults to ['.t']. + +=cut + +sub extensions { + my $self = shift; + $self->{extensions} = shift if @_; + return $self->{extensions}; +} + +=head2 C + +Get the results of the last test run. Returns a C instance. + +=cut + +sub results { + my $self = shift; + $self->{_} || $self->result_class->new; +} + +=head2 C + +Save the test results. Should be called after all tests have run. + +=cut + +sub commit { + my $self = shift; + if ( $self->{should_save} ) { + $self->save; + } +} + +=head2 Instance Methods + +=head3 C + + $self->apply_switch('failed,save'); + +Apply a list of switch options to the state, updating the internal +object state as a result. Nothing is returned. + +Diagnostics: + - "Illegal state option: %s" + +=over + +=item C + +Run in the same order as last time + +=item C + +Run only the failed tests from last time + +=item C + +Run only the passed tests from last time + +=item C + +Run all tests in normal order + +=item C + +Run the tests that most recently failed first + +=item C + +Run the tests ordered by number of todos. + +=item C + +Run the tests in slowest to fastest order. + +=item C + +Run test tests in fastest to slowest order. + +=item C + +Run the tests in newest to oldest order. + +=item C + +Run the tests in oldest to newest order. + +=item C + +Save the state on exit. + +=back + +=cut + +sub apply_switch { + my $self = shift; + my @opts = @_; + + my $last_gen = $self->results->generation - 1; + my $last_run_time = $self->results->last_run_time; + my $now = $self->get_time; + + my @switches = map { split /,/ } @opts; + + my %handler = ( + last => sub { + $self->_select( + limit => shift, + where => sub { $_->generation >= $last_gen }, + order => sub { $_->sequence } + ); + }, + failed => sub { + $self->_select( + limit => shift, + where => sub { $_->result != 0 }, + order => sub { -$_->result } + ); + }, + passed => sub { + $self->_select( + limit => shift, + where => sub { $_->result == 0 } + ); + }, + all => sub { + $self->_select( limit => shift ); + }, + todo => sub { + $self->_select( + limit => shift, + where => sub { $_->num_todo != 0 }, + order => sub { -$_->num_todo; } + ); + }, + hot => sub { + $self->_select( + limit => shift, + where => sub { defined $_->last_fail_time }, + order => sub { $now - $_->last_fail_time } + ); + }, + slow => sub { + $self->_select( + limit => shift, + order => sub { -$_->elapsed } + ); + }, + fast => sub { + $self->_select( + limit => shift, + order => sub { $_->elapsed } + ); + }, + new => sub { + $self->_select( + limit => shift, + order => sub { -$_->mtime } + ); + }, + old => sub { + $self->_select( + limit => shift, + order => sub { $_->mtime } + ); + }, + fresh => sub { + $self->_select( + limit => shift, + where => sub { $_->mtime >= $last_run_time } + ); + }, + save => sub { + $self->{should_save}++; + }, + adrian => sub { + unshift @switches, qw( hot all save ); + }, + ); + + while ( defined( my $ele = shift @switches ) ) { + my ( $opt, $arg ) + = ( $ele =~ /^([^:]+):(.*)/ ) + ? ( $1, $2 ) + : ( $ele, undef ); + my $code = $handler{$opt} + || croak "Illegal state option: $opt"; + $code->($arg); + } + return; +} + +sub _select { + my ( $self, %spec ) = @_; + push @{ $self->{select} }, \%spec; +} + +=head3 C + +Given a list of args get the names of tests that should run + +=cut + +sub get_tests { + my $self = shift; + my $recurse = shift; + my @argv = @_; + my %seen; + + my @selected = $self->_query; + + unless ( @argv || @{ $self->{select} } ) { + @argv = $recurse ? '.' : 't'; + croak qq{No tests named and '@argv' directory not found} + unless -d $argv[0]; + } + + push @selected, $self->_get_raw_tests( $recurse, @argv ) if @argv; + return grep { !$seen{$_}++ } @selected; +} + +sub _query { + my $self = shift; + if ( my @sel = @{ $self->{select} } ) { + warn "No saved state, selection will be empty\n" + unless $self->results->num_tests; + return map { $self->_query_clause($_) } @sel; + } + return; +} + +sub _query_clause { + my ( $self, $clause ) = @_; + my @got; + my $results = $self->results; + my $where = $clause->{where} || sub {1}; + + # Select + for my $name ( $results->test_names ) { + next unless -f $name; + local $_ = $results->test($name); + push @got, $name if $where->(); + } + + # Sort + if ( my $order = $clause->{order} ) { + @got = map { $_->[0] } + sort { + ( defined $b->[1] <=> defined $a->[1] ) + || ( ( $a->[1] || 0 ) <=> ( $b->[1] || 0 ) ) + } map { + [ $_, + do { local $_ = $results->test($_); $order->() } + ] + } @got; + } + + if ( my $limit = $clause->{limit} ) { + @got = splice @got, 0, $limit if @got > $limit; + } + + return @got; +} + +sub _get_raw_tests { + my $self = shift; + my $recurse = shift; + my @argv = @_; + my @tests; + + # Do globbing on Win32. + if (NEED_GLOB) { + eval "use File::Glob::Windows"; # [49732] + @argv = map { glob "$_" } @argv; + } + my $extensions = $self->{extensions}; + + for my $arg (@argv) { + if ( '-' eq $arg ) { + push @argv => ; + chomp(@argv); + next; + } + + push @tests, + sort -d $arg + ? $recurse + ? $self->_expand_dir_recursive( $arg, $extensions ) + : map { glob( File::Spec->catfile( $arg, "*$_" ) ) } + @{$extensions} + : $arg; + } + return @tests; +} + +sub _expand_dir_recursive { + my ( $self, $dir, $extensions ) = @_; + + my @tests; + my $ext_string = join( '|', map {quotemeta} @{$extensions} ); + + find( + { follow => 1, #21938 + follow_skip => 2, + wanted => sub { + -f + && /(?:$ext_string)$/ + && push @tests => $File::Find::name; + } + }, + $dir + ); + return @tests; +} + +=head3 C + +Store the results of a test. + +=cut + +# Store: +# last fail time +# last pass time +# last run time +# most recent result +# most recent todos +# total failures +# total passes +# state generation +# parser + +sub observe_test { + + my ( $self, $test_info, $parser ) = @_; + my $name = $test_info->[0]; + my $fail = scalar( $parser->failed ) + ( $parser->has_problems ? 1 : 0 ); + my $todo = scalar( $parser->todo ); + my $start_time = $parser->start_time; + my $end_time = $parser->end_time, + + my $test = $self->results->test($name); + + $test->sequence( $self->{seq}++ ); + $test->generation( $self->results->generation ); + + $test->run_time($end_time); + $test->result($fail); + $test->num_todo($todo); + $test->elapsed( $end_time - $start_time ); + + $test->parser($parser); + + if ($fail) { + $test->total_failures( $test->total_failures + 1 ); + $test->last_fail_time($end_time); + } + else { + $test->total_passes( $test->total_passes + 1 ); + $test->last_pass_time($end_time); + } +} + +=head3 C + +Write the state to a file. + +=cut + +sub save { + my ($self) = @_; + + my $store = $self->{store} or return; + $self->results->last_run_time( $self->get_time ); + + my $writer = TAP::Parser::YAMLish::Writer->new; + local *FH; + open FH, ">$store" or croak "Can't write $store ($!)"; + $writer->write( $self->results->raw, \*FH ); + close FH; +} + +=head3 C + +Load the state from a file + +=cut + +sub load { + my ( $self, $name ) = @_; + my $reader = TAP::Parser::YAMLish::Reader->new; + local *FH; + open FH, "<$name" or croak "Can't read $name ($!)"; + + # XXX this is temporary + $self->{_} = $self->result_class->new( + $reader->read( + sub { + my $line = ; + defined $line && chomp $line; + return $line; + } + ) + ); + + # $writer->write( $self->{tests} || {}, \*FH ); + close FH; + $self->_regen_seq; + $self->_prune_and_stamp; + $self->results->generation( $self->results->generation + 1 ); +} + +sub _prune_and_stamp { + my $self = shift; + + my $results = $self->results; + my @tests = $self->results->tests; + for my $test (@tests) { + my $name = $test->name; + if ( my @stat = stat $name ) { + $test->mtime( $stat[9] ); + } + else { + $results->remove($name); + } + } +} + +sub _regen_seq { + my $self = shift; + for my $test ( $self->results->tests ) { + $self->{seq} = $test->sequence + 1 + if defined $test->sequence && $test->sequence >= $self->{seq}; + } +} + +1; diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State/Result.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State/Result.pm new file mode 100644 index 0000000000..8f89c775af --- /dev/null +++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State/Result.pm @@ -0,0 +1,233 @@ +package App::Prove::State::Result; + +use strict; +use warnings; +use Carp 'croak'; + +use App::Prove::State::Result::Test; + +use constant STATE_VERSION => 1; + +=head1 NAME + +App::Prove::State::Result - Individual test suite results. + +=head1 VERSION + +Version 3.42 + +=cut + +our $VERSION = '3.42'; + +=head1 DESCRIPTION + +The C command supports a C<--state> option that instructs it to +store persistent state across runs. This module encapsulates the results for a +single test suite run. + +=head1 SYNOPSIS + + # Re-run failed tests + $ prove --state=failed,save -rbv + +=cut + +=head1 METHODS + +=head2 Class Methods + +=head3 C + + my $result = App::Prove::State::Result->new({ + generation => $generation, + tests => \%tests, + }); + +Returns a new C instance. + +=cut + +sub new { + my ( $class, $arg_for ) = @_; + $arg_for ||= {}; + my %instance_data = %$arg_for; # shallow copy + $instance_data{version} = $class->state_version; + my $tests = delete $instance_data{tests} || {}; + my $self = bless \%instance_data => $class; + $self->_initialize($tests); + return $self; +} + +sub _initialize { + my ( $self, $tests ) = @_; + my %tests; + while ( my ( $name, $test ) = each %$tests ) { + $tests{$name} = $self->test_class->new( + { %$test, + name => $name + } + ); + } + $self->tests( \%tests ); + return $self; +} + +=head2 C + +Returns the current version of state storage. + +=cut + +sub state_version {STATE_VERSION} + +=head2 C + +Returns the name of the class used for tracking individual tests. This class +should either subclass from C or provide an +identical interface. + +=cut + +sub test_class { + return 'App::Prove::State::Result::Test'; +} + +my %methods = ( + generation => { method => 'generation', default => 0 }, + last_run_time => { method => 'last_run_time', default => undef }, +); + +while ( my ( $key, $description ) = each %methods ) { + my $default = $description->{default}; + no strict 'refs'; + *{ $description->{method} } = sub { + my $self = shift; + if (@_) { + $self->{$key} = shift; + return $self; + } + return $self->{$key} || $default; + }; +} + +=head3 C + +Getter/setter for the "generation" of the test suite run. The first +generation is 1 (one) and subsequent generations are 2, 3, etc. + +=head3 C + +Getter/setter for the time of the test suite run. + +=head3 C + +Returns the tests for a given generation. This is a hashref or a hash, +depending on context called. The keys to the hash are the individual +test names and the value is a hashref with various interesting values. +Each k/v pair might resemble something like this: + + 't/foo.t' => { + elapsed => '0.0428488254547119', + gen => '7', + last_pass_time => '1219328376.07815', + last_result => '0', + last_run_time => '1219328376.07815', + last_todo => '0', + mtime => '1191708862', + seq => '192', + total_passes => '6', + } + +=cut + +sub tests { + my $self = shift; + if (@_) { + $self->{tests} = shift; + return $self; + } + my %tests = %{ $self->{tests} }; + my @tests = sort { $a->sequence <=> $b->sequence } values %tests; + return wantarray ? @tests : \@tests; +} + +=head3 C + + my $test = $result->test('t/customer/create.t'); + +Returns an individual C instance for the +given test name (usually the filename). Will return a new +C instance if the name is not found. + +=cut + +sub test { + my ( $self, $name ) = @_; + croak("test() requires a test name") unless defined $name; + + my $tests = $self->{tests} ||= {}; + if ( my $test = $tests->{$name} ) { + return $test; + } + else { + my $test = $self->test_class->new( { name => $name } ); + $self->{tests}->{$name} = $test; + return $test; + } +} + +=head3 C + +Returns an list of test names, sorted by run order. + +=cut + +sub test_names { + my $self = shift; + return map { $_->name } $self->tests; +} + +=head3 C + + $result->remove($test_name); # remove the test + my $test = $result->test($test_name); # fatal error + +Removes a given test from results. This is a no-op if the test name is not +found. + +=cut + +sub remove { + my ( $self, $name ) = @_; + delete $self->{tests}->{$name}; + return $self; +} + +=head3 C + +Returns the number of tests for a given test suite result. + +=cut + +sub num_tests { keys %{ shift->{tests} } } + +=head3 C + +Returns a hashref of raw results, suitable for serialization by YAML. + +=cut + +sub raw { + my $self = shift; + my %raw = %$self; + + my %tests; + for my $test ( $self->tests ) { + $tests{ $test->name } = $test->raw; + } + $raw{tests} = \%tests; + return \%raw; +} + +1; diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State/Result/Test.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State/Result/Test.pm new file mode 100644 index 0000000000..b795280f30 --- /dev/null +++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/App/Prove/State/Result/Test.pm @@ -0,0 +1,152 @@ +package App::Prove::State::Result::Test; + +use strict; +use warnings; + +=head1 NAME + +App::Prove::State::Result::Test - Individual test results. + +=head1 VERSION + +Version 3.42 + +=cut + +our $VERSION = '3.42'; + +=head1 DESCRIPTION + +The C command supports a C<--state> option that instructs it to +store persistent state across runs. This module encapsulates the results for a +single test. + +=head1 SYNOPSIS + + # Re-run failed tests + $ prove --state=failed,save -rbv + +=cut + +my %methods = ( + name => { method => 'name' }, + elapsed => { method => 'elapsed', default => 0 }, + gen => { method => 'generation', default => 1 }, + last_pass_time => { method => 'last_pass_time', default => undef }, + last_fail_time => { method => 'last_fail_time', default => undef }, + last_result => { method => 'result', default => 0 }, + last_run_time => { method => 'run_time', default => undef }, + last_todo => { method => 'num_todo', default => 0 }, + mtime => { method => 'mtime', default => undef }, + seq => { method => 'sequence', default => 1 }, + total_passes => { method => 'total_passes', default => 0 }, + total_failures => { method => 'total_failures', default => 0 }, + parser => { method => 'parser' }, +); + +while ( my ( $key, $description ) = each %methods ) { + my $default = $description->{default}; + no strict 'refs'; + *{ $description->{method} } = sub { + my $self = shift; + if (@_) { + $self->{$key} = shift; + return $self; + } + return $self->{$key} || $default; + }; +} + +=head1 METHODS + +=head2 Class Methods + +=head3 C + +=cut + +sub new { + my ( $class, $arg_for ) = @_; + $arg_for ||= {}; + bless $arg_for => $class; +} + +=head2 Instance Methods + +=head3 C + +The name of the test. Usually a filename. + +=head3 C + +The total elapsed times the test took to run, in seconds from the epoch.. + +=head3 C + +The number for the "generation" of the test run. The first generation is 1 +(one) and subsequent generations are 2, 3, etc. + +=head3 C + +The last time the test program passed, in seconds from the epoch. + +Returns C if the program has never passed. + +=head3 C + +The last time the test suite failed, in seconds from the epoch. + +Returns C if the program has never failed. + +=head3 C + +Returns the mtime of the test, in seconds from the epoch. + +=head3 C + +Returns a hashref of raw test data, suitable for serialization by YAML. + +=head3 C + +Currently, whether or not the test suite passed with no 'problems' (such as +TODO passed). + +=head3 C + +The total time it took for the test to run, in seconds. If C is +available, it will have finer granularity. + +=head3 C + +The number of tests with TODO directives. + +=head3 C + +The order in which this test was run for the given test suite result. + +=head3 C + +The number of times the test has passed. + +=head3 C + +The number of times the test has failed. + +=head3 C + +The underlying parser object. This is useful if you need the full +information for the test program. + +=cut + +sub raw { + my $self = shift; + my %raw = %$self; + + # this is backwards-compatibility hack and is not guaranteed. + delete $raw{name}; + delete $raw{parser}; + return \%raw; +} + +1; diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar.pm new file mode 100644 index 0000000000..e08b5e5903 --- /dev/null +++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar.pm @@ -0,0 +1,2397 @@ +### the gnu tar specification: +### http://www.gnu.org/software/tar/manual/tar.html +### +### and the pax format spec, which tar derives from: +### http://www.opengroup.org/onlinepubs/007904975/utilities/pax.html + +package Archive::Tar; +require 5.005_03; + +use Cwd; +use IO::Zlib; +use IO::File; +use Carp qw(carp croak); +use File::Spec (); +use File::Spec::Unix (); +use File::Path (); + +use Archive::Tar::File; +use Archive::Tar::Constant; + +require Exporter; + +use strict; +use vars qw[$DEBUG $error $VERSION $WARN $FOLLOW_SYMLINK $CHOWN $CHMOD + $DO_NOT_USE_PREFIX $HAS_PERLIO $HAS_IO_STRING $SAME_PERMISSIONS + $INSECURE_EXTRACT_MODE $ZERO_PAD_NUMBERS @ISA @EXPORT $RESOLVE_SYMLINK + ]; + +@ISA = qw[Exporter]; +@EXPORT = qw[ COMPRESS_GZIP COMPRESS_BZIP ]; +$DEBUG = 0; +$WARN = 1; +$FOLLOW_SYMLINK = 0; +$VERSION = "2.30"; +$CHOWN = 1; +$CHMOD = 1; +$SAME_PERMISSIONS = $> == 0 ? 1 : 0; +$DO_NOT_USE_PREFIX = 0; +$INSECURE_EXTRACT_MODE = 0; +$ZERO_PAD_NUMBERS = 0; +$RESOLVE_SYMLINK = $ENV{'PERL5_AT_RESOLVE_SYMLINK'} || 'speed'; + +BEGIN { + use Config; + $HAS_PERLIO = $Config::Config{useperlio}; + + ### try and load IO::String anyway, so you can dynamically + ### switch between perlio and IO::String + $HAS_IO_STRING = eval { + require IO::String; + import IO::String; + 1; + } || 0; +} + +=head1 NAME + +Archive::Tar - module for manipulations of tar archives + +=head1 SYNOPSIS + + use Archive::Tar; + my $tar = Archive::Tar->new; + + $tar->read('origin.tgz'); + $tar->extract(); + + $tar->add_files('file/foo.pl', 'docs/README'); + $tar->add_data('file/baz.txt', 'This is the contents now'); + + $tar->rename('oldname', 'new/file/name'); + $tar->chown('/', 'root'); + $tar->chown('/', 'root:root'); + $tar->chmod('/tmp', '1777'); + + $tar->write('files.tar'); # plain tar + $tar->write('files.tgz', COMPRESS_GZIP); # gzip compressed + $tar->write('files.tbz', COMPRESS_BZIP); # bzip2 compressed + +=head1 DESCRIPTION + +Archive::Tar provides an object oriented mechanism for handling tar +files. It provides class methods for quick and easy files handling +while also allowing for the creation of tar file objects for custom +manipulation. If you have the IO::Zlib module installed, +Archive::Tar will also support compressed or gzipped tar files. + +An object of class Archive::Tar represents a .tar(.gz) archive full +of files and things. + +=head1 Object Methods + +=head2 Archive::Tar->new( [$file, $compressed] ) + +Returns a new Tar object. If given any arguments, C calls the +C method automatically, passing on the arguments provided to +the C method. + +If C is invoked with arguments and the C method fails +for any reason, C returns undef. + +=cut + +my $tmpl = { + _data => [ ], + _file => 'Unknown', +}; + +### install get/set accessors for this object. +for my $key ( keys %$tmpl ) { + no strict 'refs'; + *{__PACKAGE__."::$key"} = sub { + my $self = shift; + $self->{$key} = $_[0] if @_; + return $self->{$key}; + } +} + +sub new { + my $class = shift; + $class = ref $class if ref $class; + + ### copying $tmpl here since a shallow copy makes it use the + ### same aref, causing for files to remain in memory always. + my $obj = bless { _data => [ ], _file => 'Unknown', _error => '' }, $class; + + if (@_) { + unless ( $obj->read( @_ ) ) { + $obj->_error(qq[No data could be read from file]); + return; + } + } + + return $obj; +} + +=head2 $tar->read ( $filename|$handle, [$compressed, {opt => 'val'}] ) + +Read the given tar file into memory. +The first argument can either be the name of a file or a reference to +an already open filehandle (or an IO::Zlib object if it's compressed) + +The C will I any previous content in C<$tar>! + +The second argument may be considered optional, but remains for +backwards compatibility. Archive::Tar now looks at the file +magic to determine what class should be used to open the file +and will transparently Do The Right Thing. + +Archive::Tar will warn if you try to pass a bzip2 compressed file and the +IO::Zlib / IO::Uncompress::Bunzip2 modules are not available and simply return. + +Note that you can currently B pass a C compressed +filehandle, which is not opened with C, a C compressed +filehandle, which is not opened with C, nor a string +containing the full archive information (either compressed or +uncompressed). These are worth while features, but not currently +implemented. See the C section. + +The third argument can be a hash reference with options. Note that +all options are case-sensitive. + +=over 4 + +=item limit + +Do not read more than C files. This is useful if you have +very big archives, and are only interested in the first few files. + +=item filter + +Can be set to a regular expression. Only files with names that match +the expression will be read. + +=item md5 + +Set to 1 and the md5sum of files will be returned (instead of file data) + my $iter = Archive::Tar->iter( $file, 1, {md5 => 1} ); + while( my $f = $iter->() ) { + print $f->data . "\t" . $f->full_path . $/; + } + +=item extract + +If set to true, immediately extract entries when reading them. This +gives you the same memory break as the C function. +Note however that entries will not be read into memory, but written +straight to disk. This means no C objects are +created for you to inspect. + +=back + +All files are stored internally as C objects. +Please consult the L documentation for details. + +Returns the number of files read in scalar context, and a list of +C objects in list context. + +=cut + +sub read { + my $self = shift; + my $file = shift; + my $gzip = shift || 0; + my $opts = shift || {}; + + unless( defined $file ) { + $self->_error( qq[No file to read from!] ); + return; + } else { + $self->_file( $file ); + } + + my $handle = $self->_get_handle($file, $gzip, READ_ONLY->( ZLIB ) ) + or return; + + my $data = $self->_read_tar( $handle, $opts ) or return; + + $self->_data( $data ); + + return wantarray ? @$data : scalar @$data; +} + +sub _get_handle { + my $self = shift; + my $file = shift; return unless defined $file; + my $compress = shift || 0; + my $mode = shift || READ_ONLY->( ZLIB ); # default to read only + + ### Check if file is a file handle or IO glob + if ( ref $file ) { + return $file if eval{ *$file{IO} }; + return $file if eval{ $file->isa(q{IO::Handle}) }; + $file = q{}.$file; + } + + ### get a FH opened to the right class, so we can use it transparently + ### throughout the program + my $fh; + { ### reading magic only makes sense if we're opening a file for + ### reading. otherwise, just use what the user requested. + my $magic = ''; + if( MODE_READ->($mode) ) { + open my $tmp, $file or do { + $self->_error( qq[Could not open '$file' for reading: $!] ); + return; + }; + + ### read the first 4 bites of the file to figure out which class to + ### use to open the file. + sysread( $tmp, $magic, 4 ); + close $tmp; + } + + ### is it bzip? + ### if you asked specifically for bzip compression, or if we're in + ### read mode and the magic numbers add up, use bzip + if( BZIP and ( + ($compress eq COMPRESS_BZIP) or + ( MODE_READ->($mode) and $magic =~ BZIP_MAGIC_NUM ) + ) + ) { + + ### different reader/writer modules, different error vars... sigh + if( MODE_READ->($mode) ) { + $fh = IO::Uncompress::Bunzip2->new( $file, MultiStream => 1 ) or do { + $self->_error( qq[Could not read '$file': ] . + $IO::Uncompress::Bunzip2::Bunzip2Error + ); + return; + }; + + } else { + $fh = IO::Compress::Bzip2->new( $file ) or do { + $self->_error( qq[Could not write to '$file': ] . + $IO::Compress::Bzip2::Bzip2Error + ); + return; + }; + } + + ### is it gzip? + ### if you asked for compression, if you wanted to read or the gzip + ### magic number is present (redundant with read) + } elsif( ZLIB and ( + $compress or MODE_READ->($mode) or $magic =~ GZIP_MAGIC_NUM + ) + ) { + $fh = IO::Zlib->new; + + unless( $fh->open( $file, $mode ) ) { + $self->_error(qq[Could not create filehandle for '$file': $!]); + return; + } + + ### is it plain tar? + } else { + $fh = IO::File->new; + + unless( $fh->open( $file, $mode ) ) { + $self->_error(qq[Could not create filehandle for '$file': $!]); + return; + } + + ### enable bin mode on tar archives + binmode $fh; + } + } + + return $fh; +} + + +sub _read_tar { + my $self = shift; + my $handle = shift or return; + my $opts = shift || {}; + + my $count = $opts->{limit} || 0; + my $filter = $opts->{filter}; + my $md5 = $opts->{md5} || 0; # cdrake + my $filter_cb = $opts->{filter_cb}; + my $extract = $opts->{extract} || 0; + + ### set a cap on the amount of files to extract ### + my $limit = 0; + $limit = 1 if $count > 0; + + my $tarfile = [ ]; + my $chunk; + my $read = 0; + my $real_name; # to set the name of a file when + # we're encountering @longlink + my $data; + + LOOP: + while( $handle->read( $chunk, HEAD ) ) { + ### IO::Zlib doesn't support this yet + my $offset; + if ( ref($handle) ne 'IO::Zlib' ) { + local $@; + $offset = eval { tell $handle } || 'unknown'; + $@ = ''; + } + else { + $offset = 'unknown'; + } + + unless( $read++ ) { + my $gzip = GZIP_MAGIC_NUM; + if( $chunk =~ /$gzip/ ) { + $self->_error( qq[Cannot read compressed format in tar-mode] ); + return; + } + + ### size is < HEAD, which means a corrupted file, as the minimum + ### length is _at least_ HEAD + if (length $chunk != HEAD) { + $self->_error( qq[Cannot read enough bytes from the tarfile] ); + return; + } + } + + ### if we can't read in all bytes... ### + last if length $chunk != HEAD; + + ### Apparently this should really be two blocks of 512 zeroes, + ### but GNU tar sometimes gets it wrong. See comment in the + ### source code (tar.c) to GNU cpio. + next if $chunk eq TAR_END; + + ### according to the posix spec, the last 12 bytes of the header are + ### null bytes, to pad it to a 512 byte block. That means if these + ### bytes are NOT null bytes, it's a corrupt header. See: + ### www.koders.com/c/fidCE473AD3D9F835D690259D60AD5654591D91D5BA.aspx + ### line 111 + { my $nulls = join '', "\0" x 12; + unless( $nulls eq substr( $chunk, 500, 12 ) ) { + $self->_error( qq[Invalid header block at offset $offset] ); + next LOOP; + } + } + + ### pass the realname, so we can set it 'proper' right away + ### some of the heuristics are done on the name, so important + ### to set it ASAP + my $entry; + { my %extra_args = (); + $extra_args{'name'} = $$real_name if defined $real_name; + + unless( $entry = Archive::Tar::File->new( chunk => $chunk, + %extra_args ) + ) { + $self->_error( qq[Couldn't read chunk at offset $offset] ); + next LOOP; + } + } + + ### ignore labels: + ### http://www.gnu.org/software/tar/manual/html_chapter/Media.html#SEC159 + next if $entry->is_label; + + if( length $entry->type and ($entry->is_file || $entry->is_longlink) ) { + + if ( $entry->is_file && !$entry->validate ) { + ### sometimes the chunk is rather fux0r3d and a whole 512 + ### bytes ends up in the ->name area. + ### clean it up, if need be + my $name = $entry->name; + $name = substr($name, 0, 100) if length $name > 100; + $name =~ s/\n/ /g; + + $self->_error( $name . qq[: checksum error] ); + next LOOP; + } + + my $block = BLOCK_SIZE->( $entry->size ); + + $data = $entry->get_content_by_ref; + + my $skip = 0; + my $ctx; # cdrake + ### skip this entry if we're filtering + + if($md5) { # cdrake + $ctx = Digest::MD5->new; # cdrake + $skip=5; # cdrake + + } elsif ($filter && $entry->name !~ $filter) { + $skip = 1; + + } elsif ($filter_cb && ! $filter_cb->($entry)) { + $skip = 2; + + ### skip this entry if it's a pax header. This is a special file added + ### by, among others, git-generated tarballs. It holds comments and is + ### not meant for extracting. See #38932: pax_global_header extracted + } elsif ( $entry->name eq PAX_HEADER or $entry->type =~ /^(x|g)$/ ) { + $skip = 3; + } + + if ($skip) { + # + # Since we're skipping, do not allocate memory for the + # whole file. Read it 64 BLOCKS at a time. Do not + # complete the skip yet because maybe what we read is a + # longlink and it won't get skipped after all + # + my $amt = $block; + my $fsz=$entry->size; # cdrake + while ($amt > 0) { + $$data = ''; + my $this = 64 * BLOCK; + $this = $amt if $this > $amt; + if( $handle->read( $$data, $this ) < $this ) { + $self->_error( qq[Read error on tarfile (missing data) ']. + $entry->full_path ."' at offset $offset" ); + next LOOP; + } + $amt -= $this; + $fsz -= $this; # cdrake + substr ($$data, $fsz) = "" if ($fsz<0); # remove external junk prior to md5 # cdrake + $ctx->add($$data) if($skip==5); # cdrake + } + $$data = $ctx->hexdigest if($skip==5 && !$entry->is_longlink && !$entry->is_unknown && !$entry->is_label ) ; # cdrake + } else { + + ### just read everything into memory + ### can't do lazy loading since IO::Zlib doesn't support 'seek' + ### this is because Compress::Zlib doesn't support it =/ + ### this reads in the whole data in one read() call. + if ( $handle->read( $$data, $block ) < $block ) { + $self->_error( qq[Read error on tarfile (missing data) ']. + $entry->full_path ."' at offset $offset" ); + next LOOP; + } + ### throw away trailing garbage ### + substr ($$data, $entry->size) = "" if defined $$data; + } + + ### part II of the @LongLink munging -- need to do /after/ + ### the checksum check. + if( $entry->is_longlink ) { + ### weird thing in tarfiles -- if the file is actually a + ### @LongLink, the data part seems to have a trailing ^@ + ### (unprintable) char. to display, pipe output through less. + ### but that doesn't *always* happen.. so check if the last + ### character is a control character, and if so remove it + ### at any rate, we better remove that character here, or tests + ### like 'eq' and hash lookups based on names will SO not work + ### remove it by calculating the proper size, and then + ### tossing out everything that's longer than that size. + + ### count number of nulls + my $nulls = $$data =~ tr/\0/\0/; + + ### cut data + size by that many bytes + $entry->size( $entry->size - $nulls ); + substr ($$data, $entry->size) = ""; + } + } + + ### clean up of the entries.. posix tar /apparently/ has some + ### weird 'feature' that allows for filenames > 255 characters + ### they'll put a header in with as name '././@LongLink' and the + ### contents will be the name of the /next/ file in the archive + ### pretty crappy and kludgy if you ask me + + ### set the name for the next entry if this is a @LongLink; + ### this is one ugly hack =/ but needed for direct extraction + if( $entry->is_longlink ) { + $real_name = $data; + next LOOP; + } elsif ( defined $real_name ) { + $entry->name( $$real_name ); + $entry->prefix(''); + undef $real_name; + } + + if ($filter && $entry->name !~ $filter) { + next LOOP; + + } elsif ($filter_cb && ! $filter_cb->($entry)) { + next LOOP; + + ### skip this entry if it's a pax header. This is a special file added + ### by, among others, git-generated tarballs. It holds comments and is + ### not meant for extracting. See #38932: pax_global_header extracted + } elsif ( $entry->name eq PAX_HEADER or $entry->type =~ /^(x|g)$/ ) { + next LOOP; + } + + if ( $extract && !$entry->is_longlink + && !$entry->is_unknown + && !$entry->is_label ) { + $self->_extract_file( $entry ) or return; + } + + ### Guard against tarfiles with garbage at the end + last LOOP if $entry->name eq ''; + + ### push only the name on the rv if we're extracting + ### -- for extract_archive + push @$tarfile, ($extract ? $entry->name : $entry); + + if( $limit ) { + $count-- unless $entry->is_longlink || $entry->is_dir; + last LOOP unless $count; + } + } continue { + undef $data; + } + + return $tarfile; +} + +=head2 $tar->contains_file( $filename ) + +Check if the archive contains a certain file. +It will return true if the file is in the archive, false otherwise. + +Note however, that this function does an exact match using C +on the full path. So it cannot compensate for case-insensitive file- +systems or compare 2 paths to see if they would point to the same +underlying file. + +=cut + +sub contains_file { + my $self = shift; + my $full = shift; + + return unless defined $full; + + ### don't warn if the entry isn't there.. that's what this function + ### is for after all. + local $WARN = 0; + return 1 if $self->_find_entry($full); + return; +} + +=head2 $tar->extract( [@filenames] ) + +Write files whose names are equivalent to any of the names in +C<@filenames> to disk, creating subdirectories as necessary. This +might not work too well under VMS. +Under MacPerl, the file's modification time will be converted to the +MacOS zero of time, and appropriate conversions will be done to the +path. However, the length of each element of the path is not +inspected to see whether it's longer than MacOS currently allows (32 +characters). + +If C is called without a list of file names, the entire +contents of the archive are extracted. + +Returns a list of filenames extracted. + +=cut + +sub extract { + my $self = shift; + my @args = @_; + my @files; + my $hashmap; + + # use the speed optimization for all extracted files + local($self->{cwd}) = cwd() unless $self->{cwd}; + + ### you requested the extraction of only certain files + if( @args ) { + for my $file ( @args ) { + + ### it's already an object? + if( UNIVERSAL::isa( $file, 'Archive::Tar::File' ) ) { + push @files, $file; + next; + + ### go find it then + } else { + + # create hash-map once to speed up lookup + $hashmap = $hashmap || { + map { $_->full_path, $_ } @{$self->_data} + }; + + if (exists $hashmap->{$file}) { + ### we found the file you're looking for + push @files, $hashmap->{$file}; + } else { + return $self->_error( + qq[Could not find '$file' in archive] ); + } + } + } + + ### just grab all the file items + } else { + @files = $self->get_files; + } + + ### nothing found? that's an error + unless( scalar @files ) { + $self->_error( qq[No files found for ] . $self->_file ); + return; + } + + ### now extract them + for my $entry ( @files ) { + unless( $self->_extract_file( $entry ) ) { + $self->_error(q[Could not extract ']. $entry->full_path .q['] ); + return; + } + } + + return @files; +} + +=head2 $tar->extract_file( $file, [$extract_path] ) + +Write an entry, whose name is equivalent to the file name provided to +disk. Optionally takes a second parameter, which is the full native +path (including filename) the entry will be written to. + +For example: + + $tar->extract_file( 'name/in/archive', 'name/i/want/to/give/it' ); + + $tar->extract_file( $at_file_object, 'name/i/want/to/give/it' ); + +Returns true on success, false on failure. + +=cut + +sub extract_file { + my $self = shift; + my $file = shift; return unless defined $file; + my $alt = shift; + + my $entry = $self->_find_entry( $file ) + or $self->_error( qq[Could not find an entry for '$file'] ), return; + + return $self->_extract_file( $entry, $alt ); +} + +sub _extract_file { + my $self = shift; + my $entry = shift or return; + my $alt = shift; + + ### you wanted an alternate extraction location ### + my $name = defined $alt ? $alt : $entry->full_path; + + ### splitpath takes a bool at the end to indicate + ### that it's splitting a dir + my ($vol,$dirs,$file); + if ( defined $alt ) { # It's a local-OS path + ($vol,$dirs,$file) = File::Spec->splitpath( $alt, + $entry->is_dir ); + } else { + ($vol,$dirs,$file) = File::Spec::Unix->splitpath( $name, + $entry->is_dir ); + } + + my $dir; + ### is $name an absolute path? ### + if( $vol || File::Spec->file_name_is_absolute( $dirs ) ) { + + ### absolute names are not allowed to be in tarballs under + ### strict mode, so only allow it if a user tells us to do it + if( not defined $alt and not $INSECURE_EXTRACT_MODE ) { + $self->_error( + q[Entry ']. $entry->full_path .q[' is an absolute path. ]. + q[Not extracting absolute paths under SECURE EXTRACT MODE] + ); + return; + } + + ### user asked us to, it's fine. + $dir = File::Spec->catpath( $vol, $dirs, "" ); + + ### it's a relative path ### + } else { + my $cwd = (ref $self and defined $self->{cwd}) + ? $self->{cwd} + : cwd(); + + my @dirs = defined $alt + ? File::Spec->splitdir( $dirs ) # It's a local-OS path + : File::Spec::Unix->splitdir( $dirs ); # it's UNIX-style, likely + # straight from the tarball + + if( not defined $alt and + not $INSECURE_EXTRACT_MODE + ) { + + ### paths that leave the current directory are not allowed under + ### strict mode, so only allow it if a user tells us to do this. + if( grep { $_ eq '..' } @dirs ) { + + $self->_error( + q[Entry ']. $entry->full_path .q[' is attempting to leave ]. + q[the current working directory. Not extracting under ]. + q[SECURE EXTRACT MODE] + ); + return; + } + + ### the archive may be asking us to extract into a symlink. This + ### is not sane and a possible security issue, as outlined here: + ### https://rt.cpan.org/Ticket/Display.html?id=30380 + ### https://bugzilla.redhat.com/show_bug.cgi?id=295021 + ### https://issues.rpath.com/browse/RPL-1716 + my $full_path = $cwd; + for my $d ( @dirs ) { + $full_path = File::Spec->catdir( $full_path, $d ); + + ### we've already checked this one, and it's safe. Move on. + next if ref $self and $self->{_link_cache}->{$full_path}; + + if( -l $full_path ) { + my $to = readlink $full_path; + my $diag = "symlinked directory ($full_path => $to)"; + + $self->_error( + q[Entry ']. $entry->full_path .q[' is attempting to ]. + qq[extract to a $diag. This is considered a security ]. + q[vulnerability and not allowed under SECURE EXTRACT ]. + q[MODE] + ); + return; + } + + ### XXX keep a cache if possible, so the stats become cheaper: + $self->{_link_cache}->{$full_path} = 1 if ref $self; + } + } + + ### '.' is the directory delimiter on VMS, which has to be escaped + ### or changed to '_' on vms. vmsify is used, because older versions + ### of vmspath do not handle this properly. + ### Must not add a '/' to an empty directory though. + map { length() ? VMS::Filespec::vmsify($_.'/') : $_ } @dirs if ON_VMS; + + my ($cwd_vol,$cwd_dir,$cwd_file) + = File::Spec->splitpath( $cwd ); + my @cwd = File::Spec->splitdir( $cwd_dir ); + push @cwd, $cwd_file if length $cwd_file; + + ### We need to pass '' as the last element to catpath. Craig Berry + ### explains why (msgid ): + ### The root problem is that splitpath on UNIX always returns the + ### final path element as a file even if it is a directory, and of + ### course there is no way it can know the difference without checking + ### against the filesystem, which it is documented as not doing. When + ### you turn around and call catpath, on VMS you have to know which bits + ### are directory bits and which bits are file bits. In this case we + ### know the result should be a directory. I had thought you could omit + ### the file argument to catpath in such a case, but apparently on UNIX + ### you can't. + $dir = File::Spec->catpath( + $cwd_vol, File::Spec->catdir( @cwd, @dirs ), '' + ); + + ### catdir() returns undef if the path is longer than 255 chars on + ### older VMS systems. + unless ( defined $dir ) { + $^W && $self->_error( qq[Could not compose a path for '$dirs'\n] ); + return; + } + + } + + if( -e $dir && !-d _ ) { + $^W && $self->_error( qq['$dir' exists, but it's not a directory!\n] ); + return; + } + + unless ( -d _ ) { + eval { File::Path::mkpath( $dir, 0, 0777 ) }; + if( $@ ) { + my $fp = $entry->full_path; + $self->_error(qq[Could not create directory '$dir' for '$fp': $@]); + return; + } + + ### XXX chown here? that might not be the same as in the archive + ### as we're only chown'ing to the owner of the file we're extracting + ### not to the owner of the directory itself, which may or may not + ### be another entry in the archive + ### Answer: no, gnu tar doesn't do it either, it'd be the wrong + ### way to go. + #if( $CHOWN && CAN_CHOWN ) { + # chown $entry->uid, $entry->gid, $dir or + # $self->_error( qq[Could not set uid/gid on '$dir'] ); + #} + } + + ### we're done if we just needed to create a dir ### + return 1 if $entry->is_dir; + + my $full = File::Spec->catfile( $dir, $file ); + + if( $entry->is_unknown ) { + $self->_error( qq[Unknown file type for file '$full'] ); + return; + } + + ### If a file system already contains a block device with the same name as + ### the being extracted regular file, we would write the file's content + ### to the block device. So remove the existing file (block device) now. + ### If an archive contains multiple same-named entries, the last one + ### should replace the previous ones. So remove the old file now. + ### If the old entry is a symlink to a file outside of the CWD, the new + ### entry would create a file there. This is CVE-2018-12015 + ### . + if (-l $full || -e _) { + if (!unlink $full) { + $self->_error( qq[Could not remove old file '$full': $!] ); + return; + } + } + if( length $entry->type && $entry->is_file ) { + my $fh = IO::File->new; + $fh->open( $full, '>' ) or ( + $self->_error( qq[Could not open file '$full': $!] ), + return + ); + + if( $entry->size ) { + binmode $fh; + syswrite $fh, $entry->data or ( + $self->_error( qq[Could not write data to '$full'] ), + return + ); + } + + close $fh or ( + $self->_error( qq[Could not close file '$full'] ), + return + ); + + } else { + $self->_make_special_file( $entry, $full ) or return; + } + + ### only update the timestamp if it's not a symlink; that will change the + ### timestamp of the original. This addresses bug #33669: Could not update + ### timestamp warning on symlinks + if( not -l $full ) { + utime time, $entry->mtime - TIME_OFFSET, $full or + $self->_error( qq[Could not update timestamp] ); + } + + if( $CHOWN && CAN_CHOWN->() and not -l $full ) { + chown $entry->uid, $entry->gid, $full or + $self->_error( qq[Could not set uid/gid on '$full'] ); + } + + ### only chmod if we're allowed to, but never chmod symlinks, since they'll + ### change the perms on the file they're linking too... + if( $CHMOD and not -l $full ) { + my $mode = $entry->mode; + unless ($SAME_PERMISSIONS) { + $mode &= ~(oct(7000) | umask); + } + chmod $mode, $full or + $self->_error( qq[Could not chown '$full' to ] . $entry->mode ); + } + + return 1; +} + +sub _make_special_file { + my $self = shift; + my $entry = shift or return; + my $file = shift; return unless defined $file; + + my $err; + + if( $entry->is_symlink ) { + my $fail; + if( ON_UNIX ) { + symlink( $entry->linkname, $file ) or $fail++; + + } else { + $self->_extract_special_file_as_plain_file( $entry, $file ) + or $fail++; + } + + $err = qq[Making symbolic link '$file' to '] . + $entry->linkname .q[' failed] if $fail; + + } elsif ( $entry->is_hardlink ) { + my $fail; + if( ON_UNIX ) { + link( $entry->linkname, $file ) or $fail++; + + } else { + $self->_extract_special_file_as_plain_file( $entry, $file ) + or $fail++; + } + + $err = qq[Making hard link from '] . $entry->linkname . + qq[' to '$file' failed] if $fail; + + } elsif ( $entry->is_fifo ) { + ON_UNIX && !system('mknod', $file, 'p') or + $err = qq[Making fifo ']. $entry->name .qq[' failed]; + + } elsif ( $entry->is_blockdev or $entry->is_chardev ) { + my $mode = $entry->is_blockdev ? 'b' : 'c'; + + ON_UNIX && !system('mknod', $file, $mode, + $entry->devmajor, $entry->devminor) or + $err = qq[Making block device ']. $entry->name .qq[' (maj=] . + $entry->devmajor . qq[ min=] . $entry->devminor . + qq[) failed.]; + + } elsif ( $entry->is_socket ) { + ### the original doesn't do anything special for sockets.... ### + 1; + } + + return $err ? $self->_error( $err ) : 1; +} + +### don't know how to make symlinks, let's just extract the file as +### a plain file +sub _extract_special_file_as_plain_file { + my $self = shift; + my $entry = shift or return; + my $file = shift; return unless defined $file; + + my $err; + TRY: { + my $orig = $self->_find_entry( $entry->linkname, $entry ); + + unless( $orig ) { + $err = qq[Could not find file '] . $entry->linkname . + qq[' in memory.]; + last TRY; + } + + ### clone the entry, make it appear as a normal file ### + my $clone = $orig->clone; + $clone->_downgrade_to_plainfile; + $self->_extract_file( $clone, $file ) or last TRY; + + return 1; + } + + return $self->_error($err); +} + +=head2 $tar->list_files( [\@properties] ) + +Returns a list of the names of all the files in the archive. + +If C is passed an array reference as its first argument +it returns a list of hash references containing the requested +properties of each file. The following list of properties is +supported: name, size, mtime (last modified date), mode, uid, gid, +linkname, uname, gname, devmajor, devminor, prefix. + +Passing an array reference containing only one element, 'name', is +special cased to return a list of names rather than a list of hash +references, making it equivalent to calling C without +arguments. + +=cut + +sub list_files { + my $self = shift; + my $aref = shift || [ ]; + + unless( $self->_data ) { + $self->read() or return; + } + + if( @$aref == 0 or ( @$aref == 1 and $aref->[0] eq 'name' ) ) { + return map { $_->full_path } @{$self->_data}; + } else { + + #my @rv; + #for my $obj ( @{$self->_data} ) { + # push @rv, { map { $_ => $obj->$_() } @$aref }; + #} + #return @rv; + + ### this does the same as the above.. just needs a +{ } + ### to make sure perl doesn't confuse it for a block + return map { my $o=$_; + +{ map { $_ => $o->$_() } @$aref } + } @{$self->_data}; + } +} + +sub _find_entry { + my $self = shift; + my $file = shift; + + unless( defined $file ) { + $self->_error( qq[No file specified] ); + return; + } + + ### it's an object already + return $file if UNIVERSAL::isa( $file, 'Archive::Tar::File' ); + +seach_entry: + if($self->_data){ + for my $entry ( @{$self->_data} ) { + my $path = $entry->full_path; + return $entry if $path eq $file; + } + } + + if($Archive::Tar::RESOLVE_SYMLINK!~/none/){ + if(my $link_entry = shift()){#fallback mode when symlinks are using relative notations ( ../a/./b/text.bin ) + $file = _symlinks_resolver( $link_entry->name, $file ); + goto seach_entry if $self->_data; + + #this will be slower than never, but won't failed! + + my $iterargs = $link_entry->{'_archive'}; + if($Archive::Tar::RESOLVE_SYMLINK=~/speed/ && @$iterargs==3){ + #faster but whole archive will be read in memory + #read whole archive and share data + my $archive = Archive::Tar->new; + $archive->read( @$iterargs ); + push @$iterargs, $archive; #take a trace for destruction + if($archive->_data){ + $self->_data( $archive->_data ); + goto seach_entry; + } + }#faster + + {#slower but lower memory usage + # $iterargs = [$filename, $compressed, $opts]; + my $next = Archive::Tar->iter( @$iterargs ); + while(my $e = $next->()){ + if($e->full_path eq $file){ + undef $next; + return $e; + } + } + }#slower + } + } + + $self->_error( qq[No such file in archive: '$file'] ); + return; +} + +=head2 $tar->get_files( [@filenames] ) + +Returns the C objects matching the filenames +provided. If no filename list was passed, all C +objects in the current Tar object are returned. + +Please refer to the C documentation on how to +handle these objects. + +=cut + +sub get_files { + my $self = shift; + + return @{ $self->_data } unless @_; + + my @list; + for my $file ( @_ ) { + push @list, grep { defined } $self->_find_entry( $file ); + } + + return @list; +} + +=head2 $tar->get_content( $file ) + +Return the content of the named file. + +=cut + +sub get_content { + my $self = shift; + my $entry = $self->_find_entry( shift ) or return; + + return $entry->data; +} + +=head2 $tar->replace_content( $file, $content ) + +Make the string $content be the content for the file named $file. + +=cut + +sub replace_content { + my $self = shift; + my $entry = $self->_find_entry( shift ) or return; + + return $entry->replace_content( shift ); +} + +=head2 $tar->rename( $file, $new_name ) + +Rename the file of the in-memory archive to $new_name. + +Note that you must specify a Unix path for $new_name, since per tar +standard, all files in the archive must be Unix paths. + +Returns true on success and false on failure. + +=cut + +sub rename { + my $self = shift; + my $file = shift; return unless defined $file; + my $new = shift; return unless defined $new; + + my $entry = $self->_find_entry( $file ) or return; + + return $entry->rename( $new ); +} + +=head2 $tar->chmod( $file, $mode ) + +Change mode of $file to $mode. + +Returns true on success and false on failure. + +=cut + +sub chmod { + my $self = shift; + my $file = shift; return unless defined $file; + my $mode = shift; return unless defined $mode && $mode =~ /^[0-7]{1,4}$/; + my @args = ("$mode"); + + my $entry = $self->_find_entry( $file ) or return; + my $x = $entry->chmod( @args ); + return $x; +} + +=head2 $tar->chown( $file, $uname [, $gname] ) + +Change owner $file to $uname and $gname. + +Returns true on success and false on failure. + +=cut + +sub chown { + my $self = shift; + my $file = shift; return unless defined $file; + my $uname = shift; return unless defined $uname; + my @args = ($uname); + push(@args, shift); + + my $entry = $self->_find_entry( $file ) or return; + my $x = $entry->chown( @args ); + return $x; +} + +=head2 $tar->remove (@filenamelist) + +Removes any entries with names matching any of the given filenames +from the in-memory archive. Returns a list of C +objects that remain. + +=cut + +sub remove { + my $self = shift; + my @list = @_; + + my %seen = map { $_->full_path => $_ } @{$self->_data}; + delete $seen{ $_ } for @list; + + $self->_data( [values %seen] ); + + return values %seen; +} + +=head2 $tar->clear + +C clears the current in-memory archive. This effectively gives +you a 'blank' object, ready to be filled again. Note that C +only has effect on the object, not the underlying tarfile. + +=cut + +sub clear { + my $self = shift or return; + + $self->_data( [] ); + $self->_file( '' ); + + return 1; +} + + +=head2 $tar->write ( [$file, $compressed, $prefix] ) + +Write the in-memory archive to disk. The first argument can either +be the name of a file or a reference to an already open filehandle (a +GLOB reference). + +The second argument is used to indicate compression. You can either +compress using C or C. If you pass a digit, it's assumed +to be the C compression level (between 1 and 9), but the use of +constants is preferred: + + # write a gzip compressed file + $tar->write( 'out.tgz', COMPRESS_GZIP ); + + # write a bzip compressed file + $tar->write( 'out.tbz', COMPRESS_BZIP ); + +Note that when you pass in a filehandle, the compression argument +is ignored, as all files are printed verbatim to your filehandle. +If you wish to enable compression with filehandles, use an +C or C filehandle instead. + +The third argument is an optional prefix. All files will be tucked +away in the directory you specify as prefix. So if you have files +'a' and 'b' in your archive, and you specify 'foo' as prefix, they +will be written to the archive as 'foo/a' and 'foo/b'. + +If no arguments are given, C returns the entire formatted +archive as a string, which could be useful if you'd like to stuff the +archive into a socket or a pipe to gzip or something. + + +=cut + +sub write { + my $self = shift; + my $file = shift; $file = '' unless defined $file; + my $gzip = shift || 0; + my $ext_prefix = shift; $ext_prefix = '' unless defined $ext_prefix; + my $dummy = ''; + + ### only need a handle if we have a file to print to ### + my $handle = length($file) + ? ( $self->_get_handle($file, $gzip, WRITE_ONLY->($gzip) ) + or return ) + : $HAS_PERLIO ? do { open my $h, '>', \$dummy; $h } + : $HAS_IO_STRING ? IO::String->new + : __PACKAGE__->no_string_support(); + + ### Addresses: #41798: Nonempty $\ when writing a TAR file produces a + ### corrupt TAR file. Must clear out $\ to make sure no garbage is + ### printed to the archive + local $\; + + for my $entry ( @{$self->_data} ) { + ### entries to be written to the tarfile ### + my @write_me; + + ### only now will we change the object to reflect the current state + ### of the name and prefix fields -- this needs to be limited to + ### write() only! + my $clone = $entry->clone; + + + ### so, if you don't want use to use the prefix, we'll stuff + ### everything in the name field instead + if( $DO_NOT_USE_PREFIX ) { + + ### you might have an extended prefix, if so, set it in the clone + ### XXX is ::Unix right? + $clone->name( length $ext_prefix + ? File::Spec::Unix->catdir( $ext_prefix, + $clone->full_path) + : $clone->full_path ); + $clone->prefix( '' ); + + ### otherwise, we'll have to set it properly -- prefix part in the + ### prefix and name part in the name field. + } else { + + ### split them here, not before! + my ($prefix,$name) = $clone->_prefix_and_file( $clone->full_path ); + + ### you might have an extended prefix, if so, set it in the clone + ### XXX is ::Unix right? + $prefix = File::Spec::Unix->catdir( $ext_prefix, $prefix ) + if length $ext_prefix; + + $clone->prefix( $prefix ); + $clone->name( $name ); + } + + ### names are too long, and will get truncated if we don't add a + ### '@LongLink' file... + my $make_longlink = ( length($clone->name) > NAME_LENGTH or + length($clone->prefix) > PREFIX_LENGTH + ) || 0; + + ### perhaps we need to make a longlink file? + if( $make_longlink ) { + my $longlink = Archive::Tar::File->new( + data => LONGLINK_NAME, + $clone->full_path, + { type => LONGLINK } + ); + + unless( $longlink ) { + $self->_error( qq[Could not create 'LongLink' entry for ] . + qq[oversize file '] . $clone->full_path ."'" ); + return; + }; + + push @write_me, $longlink; + } + + push @write_me, $clone; + + ### write the one, optionally 2 a::t::file objects to the handle + for my $clone (@write_me) { + + ### if the file is a symlink, there are 2 options: + ### either we leave the symlink intact, but then we don't write any + ### data OR we follow the symlink, which means we actually make a + ### copy. if we do the latter, we have to change the TYPE of the + ### clone to 'FILE' + my $link_ok = $clone->is_symlink && $Archive::Tar::FOLLOW_SYMLINK; + my $data_ok = !$clone->is_symlink && $clone->has_content; + + ### downgrade to a 'normal' file if it's a symlink we're going to + ### treat as a regular file + $clone->_downgrade_to_plainfile if $link_ok; + + ### get the header for this block + my $header = $self->_format_tar_entry( $clone ); + unless( $header ) { + $self->_error(q[Could not format header for: ] . + $clone->full_path ); + return; + } + + unless( print $handle $header ) { + $self->_error(q[Could not write header for: ] . + $clone->full_path); + return; + } + + if( $link_ok or $data_ok ) { + unless( print $handle $clone->data ) { + $self->_error(q[Could not write data for: ] . + $clone->full_path); + return; + } + + ### pad the end of the clone if required ### + print $handle TAR_PAD->( $clone->size ) if $clone->size % BLOCK + } + + } ### done writing these entries + } + + ### write the end markers ### + print $handle TAR_END x 2 or + return $self->_error( qq[Could not write tar end markers] ); + + ### did you want it written to a file, or returned as a string? ### + my $rv = length($file) ? 1 + : $HAS_PERLIO ? $dummy + : do { seek $handle, 0, 0; local $/; <$handle> }; + + ### make sure to close the handle if we created it + if ( $file ne $handle ) { + unless( close $handle ) { + $self->_error( qq[Could not write tar] ); + return; + } + } + + return $rv; +} + +sub _format_tar_entry { + my $self = shift; + my $entry = shift or return; + my $ext_prefix = shift; $ext_prefix = '' unless defined $ext_prefix; + my $no_prefix = shift || 0; + + my $file = $entry->name; + my $prefix = $entry->prefix; $prefix = '' unless defined $prefix; + + ### remove the prefix from the file name + ### not sure if this is still needed --kane + ### no it's not -- Archive::Tar::File->_new_from_file will take care of + ### this for us. Even worse, this would break if we tried to add a file + ### like x/x. + #if( length $prefix ) { + # $file =~ s/^$match//; + #} + + $prefix = File::Spec::Unix->catdir($ext_prefix, $prefix) + if length $ext_prefix; + + ### not sure why this is... ### + my $l = PREFIX_LENGTH; # is ambiguous otherwise... + substr ($prefix, 0, -$l) = "" if length $prefix >= PREFIX_LENGTH; + + my $f1 = "%06o"; my $f2 = $ZERO_PAD_NUMBERS ? "%011o" : "%11o"; + + ### this might be optimizable with a 'changed' flag in the file objects ### + my $tar = pack ( + PACK, + $file, + + (map { sprintf( $f1, $entry->$_() ) } qw[mode uid gid]), + (map { sprintf( $f2, $entry->$_() ) } qw[size mtime]), + + "", # checksum field - space padded a bit down + + (map { $entry->$_() } qw[type linkname magic]), + + $entry->version || TAR_VERSION, + + (map { $entry->$_() } qw[uname gname]), + (map { sprintf( $f1, $entry->$_() ) } qw[devmajor devminor]), + + ($no_prefix ? '' : $prefix) + ); + + ### add the checksum ### + my $checksum_fmt = $ZERO_PAD_NUMBERS ? "%06o\0" : "%06o\0"; + substr($tar,148,7) = sprintf("%6o\0", unpack("%16C*",$tar)); + + return $tar; +} + +=head2 $tar->add_files( @filenamelist ) + +Takes a list of filenames and adds them to the in-memory archive. + +The path to the file is automatically converted to a Unix like +equivalent for use in the archive, and, if on MacOS, the file's +modification time is converted from the MacOS epoch to the Unix epoch. +So tar archives created on MacOS with B can be read +both with I on Unix and applications like I or +I on MacOS. + +Be aware that the file's type/creator and resource fork will be lost, +which is usually what you want in cross-platform archives. + +Instead of a filename, you can also pass it an existing C +object from, for example, another archive. The object will be clone, and +effectively be a copy of the original, not an alias. + +Returns a list of C objects that were just added. + +=cut + +sub add_files { + my $self = shift; + my @files = @_ or return; + + my @rv; + for my $file ( @files ) { + + ### you passed an Archive::Tar::File object + ### clone it so we don't accidentally have a reference to + ### an object from another archive + if( UNIVERSAL::isa( $file,'Archive::Tar::File' ) ) { + push @rv, $file->clone; + next; + } + + eval { + if( utf8::is_utf8( $file )) { + utf8::encode( $file ); + } + }; + + unless( -e $file || -l $file ) { + $self->_error( qq[No such file: '$file'] ); + next; + } + + my $obj = Archive::Tar::File->new( file => $file ); + unless( $obj ) { + $self->_error( qq[Unable to add file: '$file'] ); + next; + } + + push @rv, $obj; + } + + push @{$self->{_data}}, @rv; + + return @rv; +} + +=head2 $tar->add_data ( $filename, $data, [$opthashref] ) + +Takes a filename, a scalar full of data and optionally a reference to +a hash with specific options. + +Will add a file to the in-memory archive, with name C<$filename> and +content C<$data>. Specific properties can be set using C<$opthashref>. +The following list of properties is supported: name, size, mtime +(last modified date), mode, uid, gid, linkname, uname, gname, +devmajor, devminor, prefix, type. (On MacOS, the file's path and +modification times are converted to Unix equivalents.) + +Valid values for the file type are the following constants defined by +Archive::Tar::Constant: + +=over 4 + +=item FILE + +Regular file. + +=item HARDLINK + +=item SYMLINK + +Hard and symbolic ("soft") links; linkname should specify target. + +=item CHARDEV + +=item BLOCKDEV + +Character and block devices. devmajor and devminor should specify the major +and minor device numbers. + +=item DIR + +Directory. + +=item FIFO + +FIFO (named pipe). + +=item SOCKET + +Socket. + +=back + +Returns the C object that was just added, or +C on failure. + +=cut + +sub add_data { + my $self = shift; + my ($file, $data, $opt) = @_; + + my $obj = Archive::Tar::File->new( data => $file, $data, $opt ); + unless( $obj ) { + $self->_error( qq[Unable to add file: '$file'] ); + return; + } + + push @{$self->{_data}}, $obj; + + return $obj; +} + +=head2 $tar->error( [$BOOL] ) + +Returns the current error string (usually, the last error reported). +If a true value was specified, it will give the C +equivalent of the error, in effect giving you a stacktrace. + +For backwards compatibility, this error is also available as +C<$Archive::Tar::error> although it is much recommended you use the +method call instead. + +=cut + +{ + $error = ''; + my $longmess; + + sub _error { + my $self = shift; + my $msg = $error = shift; + $longmess = Carp::longmess($error); + if (ref $self) { + $self->{_error} = $error; + $self->{_longmess} = $longmess; + } + + ### set Archive::Tar::WARN to 0 to disable printing + ### of errors + if( $WARN ) { + carp $DEBUG ? $longmess : $msg; + } + + return; + } + + sub error { + my $self = shift; + if (ref $self) { + return shift() ? $self->{_longmess} : $self->{_error}; + } else { + return shift() ? $longmess : $error; + } + } +} + +=head2 $tar->setcwd( $cwd ); + +C needs to know the current directory, and it will run +C I time it extracts a I entry from the +tarfile and saves it in the file system. (As of version 1.30, however, +C will use the speed optimization described below +automatically, so it's only relevant if you're using C). + +Since C doesn't change the current directory internally +while it is extracting the items in a tarball, all calls to C +can be avoided if we can guarantee that the current directory doesn't +get changed externally. + +To use this performance boost, set the current directory via + + use Cwd; + $tar->setcwd( cwd() ); + +once before calling a function like C and +C will use the current directory setting from then on +and won't call C internally. + +To switch back to the default behaviour, use + + $tar->setcwd( undef ); + +and C will call C internally again. + +If you're using C's C method, C will +be called for you. + +=cut + +sub setcwd { + my $self = shift; + my $cwd = shift; + + $self->{cwd} = $cwd; +} + +=head1 Class Methods + +=head2 Archive::Tar->create_archive($file, $compressed, @filelist) + +Creates a tar file from the list of files provided. The first +argument can either be the name of the tar file to create or a +reference to an open file handle (e.g. a GLOB reference). + +The second argument is used to indicate compression. You can either +compress using C or C. If you pass a digit, it's assumed +to be the C compression level (between 1 and 9), but the use of +constants is preferred: + + # write a gzip compressed file + Archive::Tar->create_archive( 'out.tgz', COMPRESS_GZIP, @filelist ); + + # write a bzip compressed file + Archive::Tar->create_archive( 'out.tbz', COMPRESS_BZIP, @filelist ); + +Note that when you pass in a filehandle, the compression argument +is ignored, as all files are printed verbatim to your filehandle. +If you wish to enable compression with filehandles, use an +C or C filehandle instead. + +The remaining arguments list the files to be included in the tar file. +These files must all exist. Any files which don't exist or can't be +read are silently ignored. + +If the archive creation fails for any reason, C will +return false. Please use the C method to find the cause of the +failure. + +Note that this method does not write C as it were; it +still reads all the files into memory before writing out the archive. +Consult the FAQ below if this is a problem. + +=cut + +sub create_archive { + my $class = shift; + + my $file = shift; return unless defined $file; + my $gzip = shift || 0; + my @files = @_; + + unless( @files ) { + return $class->_error( qq[Cowardly refusing to create empty archive!] ); + } + + my $tar = $class->new; + $tar->add_files( @files ); + return $tar->write( $file, $gzip ); +} + +=head2 Archive::Tar->iter( $filename, [ $compressed, {opt => $val} ] ) + +Returns an iterator function that reads the tar file without loading +it all in memory. Each time the function is called it will return the +next file in the tarball. The files are returned as +C objects. The iterator function returns the +empty list once it has exhausted the files contained. + +The second argument can be a hash reference with options, which are +identical to the arguments passed to C. + +Example usage: + + my $next = Archive::Tar->iter( "example.tar.gz", 1, {filter => qr/\.pm$/} ); + + while( my $f = $next->() ) { + print $f->name, "\n"; + + $f->extract or warn "Extraction failed"; + + # .... + } + +=cut + + +sub iter { + my $class = shift; + my $filename = shift; + return unless defined $filename; + my $compressed = shift || 0; + my $opts = shift || {}; + + ### get a handle to read from. + my $handle = $class->_get_handle( + $filename, + $compressed, + READ_ONLY->( ZLIB ) + ) or return; + + my @data; + my $CONSTRUCT_ARGS = [ $filename, $compressed, $opts ]; + return sub { + return shift(@data) if @data; # more than one file returned? + return unless $handle; # handle exhausted? + + ### read data, should only return file + my $tarfile = $class->_read_tar($handle, { %$opts, limit => 1 }); + @data = @$tarfile if ref $tarfile && ref $tarfile eq 'ARRAY'; + if($Archive::Tar::RESOLVE_SYMLINK!~/none/){ + foreach(@data){ + #may refine this heuristic for ON_UNIX? + if($_->linkname){ + #is there a better slot to store/share it ? + $_->{'_archive'} = $CONSTRUCT_ARGS; + } + } + } + + ### return one piece of data + return shift(@data) if @data; + + ### data is exhausted, free the filehandle + undef $handle; + if(@$CONSTRUCT_ARGS == 4){ + #free archive in memory + undef $CONSTRUCT_ARGS->[-1]; + } + return; + }; +} + +=head2 Archive::Tar->list_archive($file, $compressed, [\@properties]) + +Returns a list of the names of all the files in the archive. The +first argument can either be the name of the tar file to list or a +reference to an open file handle (e.g. a GLOB reference). + +If C is passed an array reference as its third +argument it returns a list of hash references containing the requested +properties of each file. The following list of properties is +supported: full_path, name, size, mtime (last modified date), mode, +uid, gid, linkname, uname, gname, devmajor, devminor, prefix, type. + +See C for details about supported properties. + +Passing an array reference containing only one element, 'name', is +special cased to return a list of names rather than a list of hash +references. + +=cut + +sub list_archive { + my $class = shift; + my $file = shift; return unless defined $file; + my $gzip = shift || 0; + + my $tar = $class->new($file, $gzip); + return unless $tar; + + return $tar->list_files( @_ ); +} + +=head2 Archive::Tar->extract_archive($file, $compressed) + +Extracts the contents of the tar file. The first argument can either +be the name of the tar file to create or a reference to an open file +handle (e.g. a GLOB reference). All relative paths in the tar file will +be created underneath the current working directory. + +C will return a list of files it extracted. +If the archive extraction fails for any reason, C +will return false. Please use the C method to find the cause +of the failure. + +=cut + +sub extract_archive { + my $class = shift; + my $file = shift; return unless defined $file; + my $gzip = shift || 0; + + my $tar = $class->new( ) or return; + + return $tar->read( $file, $gzip, { extract => 1 } ); +} + +=head2 $bool = Archive::Tar->has_io_string + +Returns true if we currently have C support loaded. + +Either C or C support is needed to support writing +stringified archives. Currently, C is the preferred method, if +available. + +See the C section to see how to change this preference. + +=cut + +sub has_io_string { return $HAS_IO_STRING; } + +=head2 $bool = Archive::Tar->has_perlio + +Returns true if we currently have C support loaded. + +This requires C or higher, compiled with C + +Either C or C support is needed to support writing +stringified archives. Currently, C is the preferred method, if +available. + +See the C section to see how to change this preference. + +=cut + +sub has_perlio { return $HAS_PERLIO; } + +=head2 $bool = Archive::Tar->has_zlib_support + +Returns true if C can extract C compressed archives + +=cut + +sub has_zlib_support { return ZLIB } + +=head2 $bool = Archive::Tar->has_bzip2_support + +Returns true if C can extract C compressed archives + +=cut + +sub has_bzip2_support { return BZIP } + +=head2 Archive::Tar->can_handle_compressed_files + +A simple checking routine, which will return true if C +is able to uncompress compressed archives on the fly with C +and C or false if not both are installed. + +You can use this as a shortcut to determine whether C +will do what you think before passing compressed archives to its +C method. + +=cut + +sub can_handle_compressed_files { return ZLIB && BZIP ? 1 : 0 } + +sub no_string_support { + croak("You have to install IO::String to support writing archives to strings"); +} + +sub _symlinks_resolver{ + my ($src, $trg) = @_; + my @src = split /[\/\\]/, $src; + my @trg = split /[\/\\]/, $trg; + pop @src; #strip out current object name + if(@trg and $trg[0] eq ''){ + shift @trg; + #restart path from scratch + @src = ( ); + } + foreach my $part ( @trg ){ + next if $part eq '.'; #ignore current + if($part eq '..'){ + #got to parent + pop @src; + } + else{ + #append it + push @src, $part; + } + } + my $path = join('/', @src); + warn "_symlinks_resolver('$src','$trg') = $path" if $DEBUG; + return $path; +} + +1; + +__END__ + +=head1 GLOBAL VARIABLES + +=head2 $Archive::Tar::FOLLOW_SYMLINK + +Set this variable to C<1> to make C effectively make a +copy of the file when extracting. Default is C<0>, which +means the symlink stays intact. Of course, you will have to pack the +file linked to as well. + +This option is checked when you write out the tarfile using C +or C. + +This works just like C's C<-h> option. + +=head2 $Archive::Tar::CHOWN + +By default, C will try to C your files if it is +able to. In some cases, this may not be desired. In that case, set +this variable to C<0> to disable C-ing, even if it were +possible. + +The default is C<1>. + +=head2 $Archive::Tar::CHMOD + +By default, C will try to C your files to +whatever mode was specified for the particular file in the archive. +In some cases, this may not be desired. In that case, set this +variable to C<0> to disable C-ing. + +The default is C<1>. + +=head2 $Archive::Tar::SAME_PERMISSIONS + +When, C<$Archive::Tar::CHMOD> is enabled, this setting controls whether +the permissions on files from the archive are used without modification +of if they are filtered by removing any setid bits and applying the +current umask. + +The default is C<1> for the root user and C<0> for normal users. + +=head2 $Archive::Tar::DO_NOT_USE_PREFIX + +By default, C will try to put paths that are over +100 characters in the C field of your tar header, as +defined per POSIX-standard. However, some (older) tar programs +do not implement this spec. To retain compatibility with these older +or non-POSIX compliant versions, you can set the C<$DO_NOT_USE_PREFIX> +variable to a true value, and C will use an alternate +way of dealing with paths over 100 characters by using the +C feature. + +Note that clients who do not support the C +feature will not be able to read these archives. Such clients include +tars on C, C and C. + +The default is C<0>. + +=head2 $Archive::Tar::DEBUG + +Set this variable to C<1> to always get the C output +of the warnings, instead of the regular C. This is the same +message you would get by doing: + + $tar->error(1); + +Defaults to C<0>. + +=head2 $Archive::Tar::WARN + +Set this variable to C<0> if you do not want any warnings printed. +Personally I recommend against doing this, but people asked for the +option. Also, be advised that this is of course not threadsafe. + +Defaults to C<1>. + +=head2 $Archive::Tar::error + +Holds the last reported error. Kept for historical reasons, but its +use is very much discouraged. Use the C method instead: + + warn $tar->error unless $tar->extract; + +Note that in older versions of this module, the C method +would return an effectively global value even when called an instance +method as above. This has since been fixed, and multiple instances of +C now have separate error strings. + +=head2 $Archive::Tar::INSECURE_EXTRACT_MODE + +This variable indicates whether C should allow +files to be extracted outside their current working directory. + +Allowing this could have security implications, as a malicious +tar archive could alter or replace any file the extracting user +has permissions to. Therefor, the default is to not allow +insecure extractions. + +If you trust the archive, or have other reasons to allow the +archive to write files outside your current working directory, +set this variable to C. + +Note that this is a backwards incompatible change from version +C<1.36> and before. + +=head2 $Archive::Tar::HAS_PERLIO + +This variable holds a boolean indicating if we currently have +C support loaded. This will be enabled for any perl +greater than C<5.8> compiled with C. + +If you feel strongly about disabling it, set this variable to +C. Note that you will then need C installed +to support writing stringified archives. + +Don't change this variable unless you B know what you're +doing. + +=head2 $Archive::Tar::HAS_IO_STRING + +This variable holds a boolean indicating if we currently have +C support loaded. This will be enabled for any perl +that has a loadable C module. + +If you feel strongly about disabling it, set this variable to +C. Note that you will then need C support from +your perl to be able to write stringified archives. + +Don't change this variable unless you B know what you're +doing. + +=head2 $Archive::Tar::ZERO_PAD_NUMBERS + +This variable holds a boolean indicating if we will create +zero padded numbers for C, C and C. +The default is C<0>, indicating that we will create space padded +numbers. Added for compatibility with C implementations. + +=head2 Tuning the way RESOLVE_SYMLINK will works + + You can tune the behaviour by setting the $Archive::Tar::RESOLVE_SYMLINK variable, + or $ENV{PERL5_AT_RESOLVE_SYMLINK} before loading the module Archive::Tar. + + Values can be one of the following: + + none + Disable this mechanism and failed as it was in previous version (<1.88) + + speed (default) + If you prefer speed + this will read again the whole archive using read() so all entries + will be available + + memory + If you prefer memory + + Limitation + + It won't work for terminal, pipe or sockets or every non seekable source. + +=cut + +=head1 FAQ + +=over 4 + +=item What's the minimum perl version required to run Archive::Tar? + +You will need perl version 5.005_03 or newer. + +=item Isn't Archive::Tar slow? + +Yes it is. It's pure perl, so it's a lot slower then your C +However, it's very portable. If speed is an issue, consider using +C instead. + +=item Isn't Archive::Tar heavier on memory than /bin/tar? + +Yes it is, see previous answer. Since C and therefore +C doesn't support C on their filehandles, there is little +choice but to read the archive into memory. +This is ok if you want to do in-memory manipulation of the archive. + +If you just want to extract, use the C class method +instead. It will optimize and write to disk immediately. + +Another option is to use the C class method to iterate over +the files in the tarball without reading them all in memory at once. + +=item Can you lazy-load data instead? + +In some cases, yes. You can use the C class method to iterate +over the files in the tarball without reading them all in memory at once. + +=item How much memory will an X kb tar file need? + +Probably more than X kb, since it will all be read into memory. If +this is a problem, and you don't need to do in memory manipulation +of the archive, consider using the C class method, or C +instead. + +=item What do you do with unsupported filetypes in an archive? + +C has a few filetypes that aren't supported on other platforms, +like C. If we encounter a C or C we'll just +try to make a copy of the original file, rather than throwing an error. + +This does require you to read the entire archive in to memory first, +since otherwise we wouldn't know what data to fill the copy with. +(This means that you cannot use the class methods, including C +on archives that have incompatible filetypes and still expect things +to work). + +For other filetypes, like C and C we'll warn that +the extraction of this particular item didn't work. + +=item I'm using WinZip, or some other non-POSIX client, and files are not being extracted properly! + +By default, C is in a completely POSIX-compatible +mode, which uses the POSIX-specification of C to store files. +For paths greater than 100 characters, this is done using the +C. Non-POSIX-compatible clients may not support +this part of the specification, and may only support the C functionality. To facilitate those clients, you can set the +C<$Archive::Tar::DO_NOT_USE_PREFIX> variable to C. See the +C section for details on this variable. + +Note that GNU tar earlier than version 1.14 does not cope well with +the C. If you use such a version, consider setting +the C<$Archive::Tar::DO_NOT_USE_PREFIX> variable to C. + +=item How do I extract only files that have property X from an archive? + +Sometimes, you might not wish to extract a complete archive, just +the files that are relevant to you, based on some criteria. + +You can do this by filtering a list of C objects +based on your criteria. For example, to extract only files that have +the string C in their title, you would use: + + $tar->extract( + grep { $_->full_path =~ /foo/ } $tar->get_files + ); + +This way, you can filter on any attribute of the files in the archive. +Consult the C documentation on how to use these +objects. + +=item How do I access .tar.Z files? + +The C module can optionally use C (via +the C module) to access tar files that have been compressed +with C. Unfortunately tar files compressed with the Unix C +utility cannot be read by C and so cannot be directly +accesses by C. + +If the C or C programs are available, you can use +one of these workarounds to read C<.tar.Z> files from C + +Firstly with C + + use Archive::Tar; + + open F, "uncompress -c $filename |"; + my $tar = Archive::Tar->new(*F); + ... + +and this with C + + use Archive::Tar; + + open F, "gunzip -c $filename |"; + my $tar = Archive::Tar->new(*F); + ... + +Similarly, if the C program is available, you can use this to +write a C<.tar.Z> file + + use Archive::Tar; + use IO::File; + + my $fh = new IO::File "| compress -c >$filename"; + my $tar = Archive::Tar->new(); + ... + $tar->write($fh); + $fh->close ; + +=item How do I handle Unicode strings? + +C uses byte semantics for any files it reads from or writes +to disk. This is not a problem if you only deal with files and never +look at their content or work solely with byte strings. But if you use +Unicode strings with character semantics, some additional steps need +to be taken. + +For example, if you add a Unicode string like + + # Problem + $tar->add_data('file.txt', "Euro: \x{20AC}"); + +then there will be a problem later when the tarfile gets written out +to disk via C<< $tar->write() >>: + + Wide character in print at .../Archive/Tar.pm line 1014. + +The data was added as a Unicode string and when writing it out to disk, +the C<:utf8> line discipline wasn't set by C, so Perl +tried to convert the string to ISO-8859 and failed. The written file +now contains garbage. + +For this reason, Unicode strings need to be converted to UTF-8-encoded +bytestrings before they are handed off to C: + + use Encode; + my $data = "Accented character: \x{20AC}"; + $data = encode('utf8', $data); + + $tar->add_data('file.txt', $data); + +A opposite problem occurs if you extract a UTF8-encoded file from a +tarball. Using C on the C object +will return its content as a bytestring, not as a Unicode string. + +If you want it to be a Unicode string (because you want character +semantics with operations like regular expression matching), you need +to decode the UTF8-encoded content and have Perl convert it into +a Unicode string: + + use Encode; + my $data = $tar->get_content(); + + # Make it a Unicode string + $data = decode('utf8', $data); + +There is no easy way to provide this functionality in C, +because a tarball can contain many files, and each of which could be +encoded in a different way. + +=back + +=head1 CAVEATS + +The AIX tar does not fill all unused space in the tar archive with 0x00. +This sometimes leads to warning messages from C. + + Invalid header block at offset nnn + +A fix for that problem is scheduled to be released in the following levels +of AIX, all of which should be coming out in the 4th quarter of 2009: + + AIX 5.3 TL7 SP10 + AIX 5.3 TL8 SP8 + AIX 5.3 TL9 SP5 + AIX 5.3 TL10 SP2 + + AIX 6.1 TL0 SP11 + AIX 6.1 TL1 SP7 + AIX 6.1 TL2 SP6 + AIX 6.1 TL3 SP3 + +The IBM APAR number for this problem is IZ50240 (Reported component ID: +5765G0300 / AIX 5.3). It is possible to get an ifix for that problem. +If you need an ifix please contact your local IBM AIX support. + +=head1 TODO + +=over 4 + +=item Check if passed in handles are open for read/write + +Currently I don't know of any portable pure perl way to do this. +Suggestions welcome. + +=item Allow archives to be passed in as string + +Currently, we only allow opened filehandles or filenames, but +not strings. The internals would need some reworking to facilitate +stringified archives. + +=item Facilitate processing an opened filehandle of a compressed archive + +Currently, we only support this if the filehandle is an IO::Zlib object. +Environments, like apache, will present you with an opened filehandle +to an uploaded file, which might be a compressed archive. + +=back + +=head1 SEE ALSO + +=over 4 + +=item The GNU tar specification + +C + +=item The PAX format specification + +The specification which tar derives from; C< http://www.opengroup.org/onlinepubs/007904975/utilities/pax.html> + +=item A comparison of GNU and POSIX tar standards; C + +=item GNU tar intends to switch to POSIX compatibility + +GNU Tar authors have expressed their intention to become completely +POSIX-compatible; C + +=item A Comparison between various tar implementations + +Lists known issues and incompatibilities; C + +=back + +=head1 AUTHOR + +This module by Jos Boumans Ekane@cpan.orgE. + +Please reports bugs to Ebug-archive-tar@rt.cpan.orgE. + +=head1 ACKNOWLEDGEMENTS + +Thanks to Sean Burke, Chris Nandor, Chip Salzenberg, Tim Heaney, Gisle Aas, +Rainer Tammer and especially Andrew Savige for their help and suggestions. + +=head1 COPYRIGHT + +This module is copyright (c) 2002 - 2009 Jos Boumans +Ekane@cpan.orgE. All rights reserved. + +This library is free software; you may redistribute and/or modify +it under the same terms as Perl itself. + +=cut diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar/Constant.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar/Constant.pm new file mode 100644 index 0000000000..66fad51a07 --- /dev/null +++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar/Constant.pm @@ -0,0 +1,113 @@ +package Archive::Tar::Constant; + +BEGIN { + require Exporter; + + $VERSION = '2.30'; + @ISA = qw[Exporter]; + + require Time::Local if $^O eq "MacOS"; +} + +@EXPORT = Archive::Tar::Constant->_list_consts( __PACKAGE__ ); + +use strict; +use warnings; + +use constant FILE => 0; +use constant HARDLINK => 1; +use constant SYMLINK => 2; +use constant CHARDEV => 3; +use constant BLOCKDEV => 4; +use constant DIR => 5; +use constant FIFO => 6; +use constant SOCKET => 8; +use constant UNKNOWN => 9; +use constant LONGLINK => 'L'; +use constant LABEL => 'V'; + +use constant BUFFER => 4096; +use constant HEAD => 512; +use constant BLOCK => 512; + +use constant COMPRESS_GZIP => 9; +use constant COMPRESS_BZIP => 'bzip2'; + +use constant BLOCK_SIZE => sub { my $n = int($_[0]/BLOCK); $n++ if $_[0] % BLOCK; $n * BLOCK }; +use constant TAR_PAD => sub { my $x = shift || return; return "\0" x (BLOCK - ($x % BLOCK) ) }; +use constant TAR_END => "\0" x BLOCK; + +use constant READ_ONLY => sub { shift() ? 'rb' : 'r' }; +use constant WRITE_ONLY => sub { $_[0] ? 'wb' . shift : 'w' }; +use constant MODE_READ => sub { $_[0] =~ /^r/ ? 1 : 0 }; + +# Pointless assignment to make -w shut up +my $getpwuid; $getpwuid = 'unknown' unless eval { my $f = getpwuid (0); }; +my $getgrgid; $getgrgid = 'unknown' unless eval { my $f = getgrgid (0); }; +use constant UNAME => sub { $getpwuid || scalar getpwuid( shift() ) || '' }; +use constant GNAME => sub { $getgrgid || scalar getgrgid( shift() ) || '' }; +use constant UID => $>; +use constant GID => (split ' ', $) )[0]; + +use constant MODE => do { 0666 & (0777 & ~umask) }; +use constant STRIP_MODE => sub { shift() & 0777 }; +use constant CHECK_SUM => " "; + +use constant UNPACK => 'a100 a8 a8 a8 a12 a12 a8 a1 a100 A6 a2 a32 a32 a8 a8 a155 x12'; # cdrake - size must be a12 - not A12 - or else screws up huge file sizes (>8gb) +use constant PACK => 'a100 a8 a8 a8 a12 a12 A8 a1 a100 a6 a2 a32 a32 a8 a8 a155 x12'; +use constant NAME_LENGTH => 100; +use constant PREFIX_LENGTH => 155; + +use constant TIME_OFFSET => ($^O eq "MacOS") ? Time::Local::timelocal(0,0,0,1,0,70) : 0; +use constant MAGIC => "ustar"; +use constant TAR_VERSION => "00"; +use constant LONGLINK_NAME => '././@LongLink'; +use constant PAX_HEADER => 'pax_global_header'; + + ### allow ZLIB to be turned off using ENV: DEBUG only +use constant ZLIB => do { !$ENV{'PERL5_AT_NO_ZLIB'} and + eval { require IO::Zlib }; + $ENV{'PERL5_AT_NO_ZLIB'} || $@ ? 0 : 1 + }; + + ### allow BZIP to be turned off using ENV: DEBUG only +use constant BZIP => do { !$ENV{'PERL5_AT_NO_BZIP'} and + eval { require IO::Uncompress::Bunzip2; + require IO::Compress::Bzip2; }; + $ENV{'PERL5_AT_NO_BZIP'} || $@ ? 0 : 1 + }; + +use constant GZIP_MAGIC_NUM => qr/^(?:\037\213|\037\235)/; +use constant BZIP_MAGIC_NUM => qr/^BZh\d/; + +use constant CAN_CHOWN => sub { ($> == 0 and $^O ne "MacOS" and $^O ne "MSWin32") }; +use constant CAN_READLINK => ($^O ne 'MSWin32' and $^O !~ /RISC(?:[ _])?OS/i and $^O ne 'VMS'); +use constant ON_UNIX => ($^O ne 'MSWin32' and $^O ne 'MacOS' and $^O ne 'VMS'); +use constant ON_VMS => $^O eq 'VMS'; + +sub _list_consts { + my $class = shift; + my $pkg = shift; + return unless defined $pkg; # some joker might use '0' as a pkg... + + my @rv; + { no strict 'refs'; + my $stash = $pkg . '::'; + + for my $name (sort keys %$stash ) { + + ### is it a subentry? + my $sub = $pkg->can( $name ); + next unless defined $sub; + + next unless defined prototype($sub) and + not length prototype($sub); + + push @rv, $name; + } + } + + return sort @rv; +} + +1; diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar/File.pm b/systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar/File.pm new file mode 100644 index 0000000000..b6fbecf6c9 --- /dev/null +++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/Archive/Tar/File.pm @@ -0,0 +1,708 @@ +package Archive::Tar::File; +use strict; + +use Carp (); +use IO::File; +use File::Spec::Unix (); +use File::Spec (); +use File::Basename (); + +### avoid circular use, so only require; +require Archive::Tar; +use Archive::Tar::Constant; + +use vars qw[@ISA $VERSION]; +#@ISA = qw[Archive::Tar]; +$VERSION = '2.30'; + +### set value to 1 to oct() it during the unpack ### + +my $tmpl = [ + name => 0, # string A100 + mode => 1, # octal A8 + uid => 1, # octal A8 + gid => 1, # octal A8 + size => 0, # octal # cdrake - not *always* octal.. A12 + mtime => 1, # octal A12 + chksum => 1, # octal A8 + type => 0, # character A1 + linkname => 0, # string A100 + magic => 0, # string A6 + version => 0, # 2 bytes A2 + uname => 0, # string A32 + gname => 0, # string A32 + devmajor => 1, # octal A8 + devminor => 1, # octal A8 + prefix => 0, # A155 x 12 + +### end UNPACK items ### + raw => 0, # the raw data chunk + data => 0, # the data associated with the file -- + # This might be very memory intensive +]; + +### install get/set accessors for this object. +for ( my $i=0; $i[$i]; + no strict 'refs'; + *{__PACKAGE__."::$key"} = sub { + my $self = shift; + $self->{$key} = $_[0] if @_; + + ### just in case the key is not there or undef or something ### + { local $^W = 0; + return $self->{$key}; + } + } +} + +=head1 NAME + +Archive::Tar::File - a subclass for in-memory extracted file from Archive::Tar + +=head1 SYNOPSIS + + my @items = $tar->get_files; + + print $_->name, ' ', $_->size, "\n" for @items; + + print $object->get_content; + $object->replace_content('new content'); + + $object->rename( 'new/full/path/to/file.c' ); + +=head1 DESCRIPTION + +Archive::Tar::Files provides a neat little object layer for in-memory +extracted files. It's mostly used internally in Archive::Tar to tidy +up the code, but there's no reason users shouldn't use this API as +well. + +=head2 Accessors + +A lot of the methods in this package are accessors to the various +fields in the tar header: + +=over 4 + +=item name + +The file's name + +=item mode + +The file's mode + +=item uid + +The user id owning the file + +=item gid + +The group id owning the file + +=item size + +File size in bytes + +=item mtime + +Modification time. Adjusted to mac-time on MacOS if required + +=item chksum + +Checksum field for the tar header + +=item type + +File type -- numeric, but comparable to exported constants -- see +Archive::Tar's documentation + +=item linkname + +If the file is a symlink, the file it's pointing to + +=item magic + +Tar magic string -- not useful for most users + +=item version + +Tar version string -- not useful for most users + +=item uname + +The user name that owns the file + +=item gname + +The group name that owns the file + +=item devmajor + +Device major number in case of a special file + +=item devminor + +Device minor number in case of a special file + +=item prefix + +Any directory to prefix to the extraction path, if any + +=item raw + +Raw tar header -- not useful for most users + +=back + +=head1 Methods + +=head2 Archive::Tar::File->new( file => $path ) + +Returns a new Archive::Tar::File object from an existing file. + +Returns undef on failure. + +=head2 Archive::Tar::File->new( data => $path, $data, $opt ) + +Returns a new Archive::Tar::File object from data. + +C<$path> defines the file name (which need not exist), C<$data> the +file contents, and C<$opt> is a reference to a hash of attributes +which may be used to override the default attributes (fields in the +tar header), which are described above in the Accessors section. + +Returns undef on failure. + +=head2 Archive::Tar::File->new( chunk => $chunk ) + +Returns a new Archive::Tar::File object from a raw 512-byte tar +archive chunk. + +Returns undef on failure. + +=cut + +sub new { + my $class = shift; + my $what = shift; + + my $obj = ($what eq 'chunk') ? __PACKAGE__->_new_from_chunk( @_ ) : + ($what eq 'file' ) ? __PACKAGE__->_new_from_file( @_ ) : + ($what eq 'data' ) ? __PACKAGE__->_new_from_data( @_ ) : + undef; + + return $obj; +} + +### copies the data, creates a clone ### +sub clone { + my $self = shift; + return bless { %$self }, ref $self; +} + +sub _new_from_chunk { + my $class = shift; + my $chunk = shift or return; # 512 bytes of tar header + my %hash = @_; + + ### filter any arguments on defined-ness of values. + ### this allows overriding from what the tar-header is saying + ### about this tar-entry. Particularly useful for @LongLink files + my %args = map { $_ => $hash{$_} } grep { defined $hash{$_} } keys %hash; + + ### makes it start at 0 actually... :) ### + my $i = -1; + my %entry = map { + my ($s,$v)=($tmpl->[++$i],$tmpl->[++$i]); # cdrake + ($_)=($_=~/^([^\0]*)/) unless($s eq 'size'); # cdrake + $s=> $v ? oct $_ : $_ # cdrake + # $tmpl->[++$i] => $tmpl->[++$i] ? oct $_ : $_ # removed by cdrake - mucks up binary sizes >8gb + } unpack( UNPACK, $chunk ); # cdrake + # } map { /^([^\0]*)/ } unpack( UNPACK, $chunk ); # old - replaced now by cdrake + + + if(substr($entry{'size'}, 0, 1) eq "\x80") { # binary size extension for files >8gigs (> octal 77777777777777) # cdrake + my @sz=unpack("aCSNN",$entry{'size'}); $entry{'size'}=$sz[4]+(2**32)*$sz[3]+$sz[2]*(2**64); # Use the low 80 bits (should use the upper 15 as well, but as at year 2011, that seems unlikely to ever be needed - the numbers are just too big...) # cdrake + } else { # cdrake + ($entry{'size'})=($entry{'size'}=~/^([^\0]*)/); $entry{'size'}=oct $entry{'size'}; # cdrake + } # cdrake + + + my $obj = bless { %entry, %args }, $class; + + ### magic is a filetype string.. it should have something like 'ustar' or + ### something similar... if the chunk is garbage, skip it + return unless $obj->magic !~ /\W/; + + ### store the original chunk ### + $obj->raw( $chunk ); + + $obj->type(FILE) if ( (!length $obj->type) or ($obj->type =~ /\W/) ); + $obj->type(DIR) if ( ($obj->is_file) && ($obj->name =~ m|/$|) ); + + + return $obj; + +} + +sub _new_from_file { + my $class = shift; + my $path = shift; + + ### path has to at least exist + return unless defined $path; + + my $type = __PACKAGE__->_filetype($path); + my $data = ''; + + READ: { + unless ($type == DIR ) { + my $fh = IO::File->new; + + unless( $fh->open($path) ) { + ### dangling symlinks are fine, stop reading but continue + ### creating the object + last READ if $type == SYMLINK; + + ### otherwise, return from this function -- + ### anything that's *not* a symlink should be + ### resolvable + return; + } + + ### binmode needed to read files properly on win32 ### + binmode $fh; + $data = do { local $/; <$fh> }; + close $fh; + } + } + + my @items = qw[mode uid gid size mtime]; + my %hash = map { shift(@items), $_ } (lstat $path)[2,4,5,7,9]; + + if (ON_VMS) { + ### VMS has two UID modes, traditional and POSIX. Normally POSIX is + ### not used. We currently do not have an easy way to see if we are in + ### POSIX mode. In traditional mode, the UID is actually the VMS UIC. + ### The VMS UIC has the upper 16 bits is the GID, which in many cases + ### the VMS UIC will be larger than 209715, the largest that TAR can + ### handle. So for now, assume it is traditional if the UID is larger + ### than 0x10000. + + if ($hash{uid} > 0x10000) { + $hash{uid} = $hash{uid} & 0xFFFF; + } + + ### The file length from stat() is the physical length of the file + ### However the amount of data read in may be more for some file types. + ### Fixed length files are read past the logical EOF to end of the block + ### containing. Other file types get expanded on read because record + ### delimiters are added. + + my $data_len = length $data; + $hash{size} = $data_len if $hash{size} < $data_len; + + } + ### you *must* set size == 0 on symlinks, or the next entry will be + ### though of as the contents of the symlink, which is wrong. + ### this fixes bug #7937 + $hash{size} = 0 if ($type == DIR or $type == SYMLINK); + $hash{mtime} -= TIME_OFFSET; + + ### strip the high bits off the mode, which we don't need to store + $hash{mode} = STRIP_MODE->( $hash{mode} ); + + + ### probably requires some file path munging here ... ### + ### name and prefix are set later + my $obj = { + %hash, + name => '', + chksum => CHECK_SUM, + type => $type, + linkname => ($type == SYMLINK and CAN_READLINK) + ? readlink $path + : '', + magic => MAGIC, + version => TAR_VERSION, + uname => UNAME->( $hash{uid} ), + gname => GNAME->( $hash{gid} ), + devmajor => 0, # not handled + devminor => 0, # not handled + prefix => '', + data => $data, + }; + + bless $obj, $class; + + ### fix up the prefix and file from the path + my($prefix,$file) = $obj->_prefix_and_file( $path ); + $obj->prefix( $prefix ); + $obj->name( $file ); + + return $obj; +} + +sub _new_from_data { + my $class = shift; + my $path = shift; return unless defined $path; + my $data = shift; return unless defined $data; + my $opt = shift; + + my $obj = { + data => $data, + name => '', + mode => MODE, + uid => UID, + gid => GID, + size => length $data, + mtime => time - TIME_OFFSET, + chksum => CHECK_SUM, + type => FILE, + linkname => '', + magic => MAGIC, + version => TAR_VERSION, + uname => UNAME->( UID ), + gname => GNAME->( GID ), + devminor => 0, + devmajor => 0, + prefix => '', + }; + + ### overwrite with user options, if provided ### + if( $opt and ref $opt eq 'HASH' ) { + for my $key ( keys %$opt ) { + + ### don't write bogus options ### + next unless exists $obj->{$key}; + $obj->{$key} = $opt->{$key}; + } + } + + bless $obj, $class; + + ### fix up the prefix and file from the path + my($prefix,$file) = $obj->_prefix_and_file( $path ); + $obj->prefix( $prefix ); + $obj->name( $file ); + + return $obj; +} + +sub _prefix_and_file { + my $self = shift; + my $path = shift; + + my ($vol, $dirs, $file) = File::Spec->splitpath( $path, $self->is_dir ); + my @dirs = File::Spec->splitdir( File::Spec->canonpath($dirs) ); + + ### if it's a directory, then $file might be empty + $file = pop @dirs if $self->is_dir and not length $file; + + ### splitting ../ gives you the relative path in native syntax + map { $_ = '..' if $_ eq '-' } @dirs if ON_VMS; + + my $prefix = File::Spec::Unix->catdir(@dirs); + return( $prefix, $file ); +} + +sub _filetype { + my $self = shift; + my $file = shift; + + return unless defined $file; + + return SYMLINK if (-l $file); # Symlink + + return FILE if (-f _); # Plain file + + return DIR if (-d _); # Directory + + return FIFO if (-p _); # Named pipe + + return SOCKET if (-S _); # Socket + + return BLOCKDEV if (-b _); # Block special + + return CHARDEV if (-c _); # Character special + + ### shouldn't happen, this is when making archives, not reading ### + return LONGLINK if ( $file eq LONGLINK_NAME ); + + return UNKNOWN; # Something else (like what?) + +} + +### this method 'downgrades' a file to plain file -- this is used for +### symlinks when FOLLOW_SYMLINKS is true. +sub _downgrade_to_plainfile { + my $entry = shift; + $entry->type( FILE ); + $entry->mode( MODE ); + $entry->linkname(''); + + return 1; +} + +=head2 $bool = $file->extract( [ $alternative_name ] ) + +Extract this object, optionally to an alternative name. + +See C<< Archive::Tar->extract_file >> for details. + +Returns true on success and false on failure. + +=cut + +sub extract { + my $self = shift; + + local $Carp::CarpLevel += 1; + + return Archive::Tar->_extract_file( $self, @_ ); +} + +=head2 $path = $file->full_path + +Returns the full path from the tar header; this is basically a +concatenation of the C and C fields. + +=cut + +sub full_path { + my $self = shift; + + ### if prefix field is empty + return $self->name unless defined $self->prefix and length $self->prefix; + + ### or otherwise, catfile'd + return File::Spec::Unix->catfile( $self->prefix, $self->name ); +} + + +=head2 $bool = $file->validate + +Done by Archive::Tar internally when reading the tar file: +validate the header against the checksum to ensure integer tar file. + +Returns true on success, false on failure + +=cut + +sub validate { + my $self = shift; + + my $raw = $self->raw; + + ### don't know why this one is different from the one we /write/ ### + substr ($raw, 148, 8) = " "; + + ### bug #43513: [PATCH] Accept wrong checksums from SunOS and HP-UX tar + ### like GNU tar does. See here for details: + ### http://www.gnu.org/software/tar/manual/tar.html#SEC139 + ### so we do both a signed AND unsigned validate. if one succeeds, that's + ### good enough + return ( (unpack ("%16C*", $raw) == $self->chksum) + or (unpack ("%16c*", $raw) == $self->chksum)) ? 1 : 0; +} + +=head2 $bool = $file->has_content + +Returns a boolean to indicate whether the current object has content. +Some special files like directories and so on never will have any +content. This method is mainly to make sure you don't get warnings +for using uninitialized values when looking at an object's content. + +=cut + +sub has_content { + my $self = shift; + return defined $self->data() && length $self->data() ? 1 : 0; +} + +=head2 $content = $file->get_content + +Returns the current content for the in-memory file + +=cut + +sub get_content { + my $self = shift; + $self->data( ); +} + +=head2 $cref = $file->get_content_by_ref + +Returns the current content for the in-memory file as a scalar +reference. Normal users won't need this, but it will save memory if +you are dealing with very large data files in your tar archive, since +it will pass the contents by reference, rather than make a copy of it +first. + +=cut + +sub get_content_by_ref { + my $self = shift; + + return \$self->{data}; +} + +=head2 $bool = $file->replace_content( $content ) + +Replace the current content of the file with the new content. This +only affects the in-memory archive, not the on-disk version until +you write it. + +Returns true on success, false on failure. + +=cut + +sub replace_content { + my $self = shift; + my $data = shift || ''; + + $self->data( $data ); + $self->size( length $data ); + return 1; +} + +=head2 $bool = $file->rename( $new_name ) + +Rename the current file to $new_name. + +Note that you must specify a Unix path for $new_name, since per tar +standard, all files in the archive must be Unix paths. + +Returns true on success and false on failure. + +=cut + +sub rename { + my $self = shift; + my $path = shift; + + return unless defined $path; + + my ($prefix,$file) = $self->_prefix_and_file( $path ); + + $self->name( $file ); + $self->prefix( $prefix ); + + return 1; +} + +=head2 $bool = $file->chmod $mode) + +Change mode of $file to $mode. The mode can be a string or a number +which is interpreted as octal whether or not a leading 0 is given. + +Returns true on success and false on failure. + +=cut + +sub chmod { + my $self = shift; + my $mode = shift; return unless defined $mode && $mode =~ /^[0-7]{1,4}$/; + $self->{mode} = oct($mode); + return 1; +} + +=head2 $bool = $file->chown( $user [, $group]) + +Change owner of $file to $user. If a $group is given that is changed +as well. You can also pass a single parameter with a colon separating the +use and group as in 'root:wheel'. + +Returns true on success and false on failure. + +=cut + +sub chown { + my $self = shift; + my $uname = shift; + return unless defined $uname; + my $gname; + if (-1 != index($uname, ':')) { + ($uname, $gname) = split(/:/, $uname); + } else { + $gname = shift if @_ > 0; + } + + $self->uname( $uname ); + $self->gname( $gname ) if $gname; + return 1; +} + +=head1 Convenience methods + +To quickly check the type of a C object, you can +use the following methods: + +=over 4 + +=item $file->is_file + +Returns true if the file is of type C + +=item $file->is_dir + +Returns true if the file is of type C + +=item $file->is_hardlink + +Returns true if the file is of type C + +=item $file->is_symlink + +Returns true if the file is of type C + +=item $file->is_chardev + +Returns true if the file is of type C + +=item $file->is_blockdev + +Returns true if the file is of type C + +=item $file->is_fifo + +Returns true if the file is of type C + +=item $file->is_socket + +Returns true if the file is of type C + +=item $file->is_longlink + +Returns true if the file is of type C. +Should not happen after a successful C. + +=item $file->is_label + +Returns true if the file is of type C