exiftool-vendored.exe 12.82.0 → 12.84.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/bin/exiftool.exe +0 -0
- package/bin/exiftool_files/Changes +37 -0
- package/bin/exiftool_files/Licenses_Strawberry_Perl.zip +0 -0
- package/bin/exiftool_files/README +3 -2
- package/bin/exiftool_files/build_geolocation +872 -0
- package/bin/exiftool_files/config_files/example.config +2 -2
- package/bin/exiftool_files/exiftool.pl +28 -6
- package/bin/exiftool_files/fmt_files/gpx.fmt +2 -1
- package/bin/exiftool_files/fmt_files/gpx_wpt.fmt +2 -1
- package/bin/exiftool_files/lib/Archive/Zip/Archive.pm +399 -65
- package/bin/exiftool_files/lib/Archive/Zip/DirectoryMember.pm +1 -1
- package/bin/exiftool_files/lib/Archive/Zip/FileMember.pm +1 -1
- package/bin/exiftool_files/lib/Archive/Zip/Member.pm +499 -195
- package/bin/exiftool_files/lib/Archive/Zip/NewFileMember.pm +1 -1
- package/bin/exiftool_files/lib/Archive/Zip/StringMember.pm +2 -2
- package/bin/exiftool_files/lib/Archive/Zip/ZipFileMember.pm +79 -20
- package/bin/exiftool_files/lib/Archive/Zip.pm +179 -29
- package/bin/exiftool_files/lib/AutoLoader.pm +453 -0
- package/bin/exiftool_files/lib/B/Deparse.pm +209 -137
- package/bin/exiftool_files/lib/B.pm +1 -1
- package/bin/exiftool_files/lib/Benchmark.pm +1123 -0
- package/bin/exiftool_files/lib/Class/Struct.pm +2 -2
- package/bin/exiftool_files/lib/Compress/Raw/Bzip2.pm +14 -9
- package/bin/exiftool_files/lib/Compress/Raw/Lzma.pm +982 -0
- package/bin/exiftool_files/lib/Compress/Raw/Zlib.pm +91 -86
- package/bin/exiftool_files/lib/Compress/Zlib.pm +105 -100
- package/bin/exiftool_files/lib/Config.pm +9 -9
- package/bin/exiftool_files/lib/Config_heavy.pl +36 -33
- package/bin/exiftool_files/lib/CryptX.pm +2 -82
- package/bin/exiftool_files/lib/Data/Dumper.pm +2 -2
- package/bin/exiftool_files/lib/Digest/MD5.pm +12 -9
- package/bin/exiftool_files/lib/Digest/Perl/MD5.pm +1 -191
- package/bin/exiftool_files/lib/Digest/base.pm +26 -20
- package/bin/exiftool_files/lib/DynaLoader.pm +7 -4
- package/bin/exiftool_files/lib/Encode.pm +3 -3
- package/bin/exiftool_files/lib/Errno.pm +13 -13
- package/bin/exiftool_files/lib/Exporter/Heavy.pm +2 -2
- package/bin/exiftool_files/lib/Exporter.pm +1 -1
- package/bin/exiftool_files/lib/ExtUtils/Command/MM.pm +323 -0
- package/bin/exiftool_files/lib/ExtUtils/Command.pm +382 -0
- package/bin/exiftool_files/lib/File/Find.pm +1 -1
- package/bin/exiftool_files/lib/File/Glob.pm +1 -8
- package/bin/exiftool_files/lib/File/GlobMapper.pm +2 -2
- package/bin/exiftool_files/lib/File/HomeDir/Darwin/Carbon.pm +2 -40
- package/bin/exiftool_files/lib/File/HomeDir/Darwin/Cocoa.pm +2 -34
- package/bin/exiftool_files/lib/File/HomeDir/Darwin.pm +2 -28
- package/bin/exiftool_files/lib/File/HomeDir/Driver.pm +2 -35
- package/bin/exiftool_files/lib/File/HomeDir/FreeDesktop.pm +2 -62
- package/bin/exiftool_files/lib/File/HomeDir/MacOS9.pm +2 -53
- package/bin/exiftool_files/lib/File/HomeDir/Test.pm +2 -43
- package/bin/exiftool_files/lib/File/HomeDir/Unix.pm +2 -53
- package/bin/exiftool_files/lib/File/HomeDir/Windows.pm +2 -69
- package/bin/exiftool_files/lib/File/HomeDir.pm +5 -416
- package/bin/exiftool_files/lib/File/Path.pm +3 -3
- package/bin/exiftool_files/lib/File/Spec/Win32.pm +2 -2
- package/bin/exiftool_files/lib/File/Temp.pm +70 -35
- package/bin/exiftool_files/lib/File/Which.pm +1 -240
- package/bin/exiftool_files/lib/File/stat.pm +3 -2
- package/bin/exiftool_files/lib/IO/Compress/Adapter/Bzip2.pm +16 -17
- package/bin/exiftool_files/lib/IO/Compress/Adapter/Deflate.pm +19 -20
- package/bin/exiftool_files/lib/IO/Compress/Base/Common.pm +5 -5
- package/bin/exiftool_files/lib/IO/Compress/Base.pm +35 -26
- package/bin/exiftool_files/lib/IO/Compress/Brotli.pm +159 -0
- package/bin/exiftool_files/lib/IO/Compress/Bzip2.pm +50 -25
- package/bin/exiftool_files/lib/IO/Compress/Gzip/Constants.pm +6 -6
- package/bin/exiftool_files/lib/IO/Compress/Gzip.pm +58 -32
- package/bin/exiftool_files/lib/IO/Compress/RawDeflate.pm +63 -38
- package/bin/exiftool_files/lib/IO/Compress/Zlib/Extra.pm +20 -20
- package/bin/exiftool_files/lib/IO/Dir.pm +1 -1
- package/bin/exiftool_files/lib/IO/File.pm +1 -1
- package/bin/exiftool_files/lib/IO/Handle.pm +1 -21
- package/bin/exiftool_files/lib/IO/Pipe.pm +1 -1
- package/bin/exiftool_files/lib/IO/Seekable.pm +1 -1
- package/bin/exiftool_files/lib/IO/Select.pm +16 -2
- package/bin/exiftool_files/lib/IO/Socket/INET.pm +14 -9
- package/bin/exiftool_files/lib/IO/Socket/UNIX.pm +17 -1
- package/bin/exiftool_files/lib/IO/Socket.pm +474 -126
- package/bin/exiftool_files/lib/IO/String.pm +425 -0
- package/bin/exiftool_files/lib/IO/Uncompress/Adapter/Inflate.pm +13 -14
- package/bin/exiftool_files/lib/IO/Uncompress/Base.pm +142 -132
- package/bin/exiftool_files/lib/IO/Uncompress/Brotli.pm +119 -0
- package/bin/exiftool_files/lib/IO/Uncompress/Gunzip.pm +43 -37
- package/bin/exiftool_files/lib/IO/Uncompress/RawInflate.pm +49 -43
- package/bin/exiftool_files/lib/IO.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Apple.pm +51 -7
- package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +5 -2
- package/bin/exiftool_files/lib/Image/ExifTool/CanonVRD.pm +18 -5
- package/bin/exiftool_files/lib/Image/ExifTool/DJI.pm +29 -0
- package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +19 -2
- package/bin/exiftool_files/lib/Image/ExifTool/GM.pm +17 -8
- package/bin/exiftool_files/lib/Image/ExifTool/Geolocation.dat +0 -0
- package/bin/exiftool_files/lib/Image/ExifTool/Geolocation.pm +163 -101
- package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +18 -10
- package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +7 -6
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +6 -1
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +5 -0
- package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +15 -6
- package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +18 -9
- package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +24 -5
- package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +2 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +165 -132
- package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +3 -0
- package/bin/exiftool_files/lib/Image/ExifTool.pm +45 -23
- package/bin/exiftool_files/lib/Image/ExifTool.pod +23 -14
- package/bin/exiftool_files/lib/List/Util.pm +97 -8
- package/bin/exiftool_files/lib/MIME/Base64.pm +5 -5
- package/bin/exiftool_files/lib/MIME/Charset/_Compat.pm +106 -0
- package/bin/exiftool_files/lib/MIME/Charset.pm +1303 -0
- package/bin/exiftool_files/lib/Math/BigFloat.pm +444 -27
- package/bin/exiftool_files/lib/Math/BigInt/Calc.pm +296 -313
- package/bin/exiftool_files/lib/Math/BigInt/FastCalc.pm +1 -1
- package/bin/exiftool_files/lib/Math/BigInt/GMP.pm +2 -115
- package/bin/exiftool_files/lib/Math/BigInt/LTM.pm +2 -24
- package/bin/exiftool_files/lib/Math/BigInt/Lib.pm +61 -32
- package/bin/exiftool_files/lib/Math/BigInt.pm +292 -107
- package/bin/exiftool_files/lib/POSIX.pm +1 -1
- package/bin/exiftool_files/lib/PerlIO/scalar.pm +41 -0
- package/bin/exiftool_files/lib/PerlIO.pm +397 -0
- package/bin/exiftool_files/lib/Portable/CPAN.pm +94 -94
- package/bin/exiftool_files/lib/Portable/Config.pm +94 -94
- package/bin/exiftool_files/lib/Portable/FileSpec.pm +180 -180
- package/bin/exiftool_files/lib/Portable/HomeDir.pm +110 -110
- package/bin/exiftool_files/lib/Portable/LoadYaml.pm +430 -430
- package/bin/exiftool_files/lib/Portable/minicpan.pm +55 -55
- package/bin/exiftool_files/lib/Portable.pm +246 -320
- package/bin/exiftool_files/lib/Scalar/Util.pm +9 -4
- package/bin/exiftool_files/lib/Socket.pm +16 -12
- package/bin/exiftool_files/lib/Storable.pm +1444 -1441
- package/bin/exiftool_files/lib/TAP/Base.pm +133 -0
- package/bin/exiftool_files/lib/TAP/Formatter/Base.pm +467 -0
- package/bin/exiftool_files/lib/TAP/Formatter/Color.pm +116 -0
- package/bin/exiftool_files/lib/TAP/Formatter/Console/ParallelSession.pm +201 -0
- package/bin/exiftool_files/lib/TAP/Formatter/Console/Session.pm +205 -0
- package/bin/exiftool_files/lib/TAP/Formatter/Console.pm +100 -0
- package/bin/exiftool_files/lib/TAP/Formatter/File/Session.pm +95 -0
- package/bin/exiftool_files/lib/TAP/Formatter/File.pm +56 -0
- package/bin/exiftool_files/lib/TAP/Formatter/Session.pm +220 -0
- package/bin/exiftool_files/lib/TAP/Harness/Beyond.pod +426 -0
- package/bin/exiftool_files/lib/TAP/Harness/Env.pm +215 -0
- package/bin/exiftool_files/lib/TAP/Harness.pm +1054 -0
- package/bin/exiftool_files/lib/TAP/Object.pm +155 -0
- package/bin/exiftool_files/lib/TAP/Parser/Aggregator.pm +414 -0
- package/bin/exiftool_files/lib/TAP/Parser/Grammar.pm +584 -0
- package/bin/exiftool_files/lib/TAP/Parser/Iterator/Array.pm +100 -0
- package/bin/exiftool_files/lib/TAP/Parser/Iterator/Process.pm +378 -0
- package/bin/exiftool_files/lib/TAP/Parser/Iterator/Stream.pm +116 -0
- package/bin/exiftool_files/lib/TAP/Parser/Iterator.pm +162 -0
- package/bin/exiftool_files/lib/TAP/Parser/IteratorFactory.pm +339 -0
- package/bin/exiftool_files/lib/TAP/Parser/Multiplexer.pm +194 -0
- package/bin/exiftool_files/lib/TAP/Parser/Result/Bailout.pm +62 -0
- package/bin/exiftool_files/lib/TAP/Parser/Result/Comment.pm +60 -0
- package/bin/exiftool_files/lib/TAP/Parser/Result/Plan.pm +119 -0
- package/bin/exiftool_files/lib/TAP/Parser/Result/Pragma.pm +62 -0
- package/bin/exiftool_files/lib/TAP/Parser/Result/Test.pm +271 -0
- package/bin/exiftool_files/lib/TAP/Parser/Result/Unknown.pm +48 -0
- package/bin/exiftool_files/lib/TAP/Parser/Result/Version.pm +62 -0
- package/bin/exiftool_files/lib/TAP/Parser/Result/YAML.pm +61 -0
- package/bin/exiftool_files/lib/TAP/Parser/Result.pm +297 -0
- package/bin/exiftool_files/lib/TAP/Parser/ResultFactory.pm +183 -0
- package/bin/exiftool_files/lib/TAP/Parser/Scheduler/Job.pm +127 -0
- package/bin/exiftool_files/lib/TAP/Parser/Scheduler/Spinner.pm +61 -0
- package/bin/exiftool_files/lib/TAP/Parser/Scheduler.pm +448 -0
- package/bin/exiftool_files/lib/TAP/Parser/Source.pm +381 -0
- package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/Executable.pm +184 -0
- package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/File.pm +136 -0
- package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/Handle.pm +124 -0
- package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/Perl.pm +370 -0
- package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/RawTAP.pm +130 -0
- package/bin/exiftool_files/lib/TAP/Parser/SourceHandler.pm +191 -0
- package/bin/exiftool_files/lib/TAP/Parser/YAMLish/Reader.pm +332 -0
- package/bin/exiftool_files/lib/TAP/Parser/YAMLish/Writer.pm +254 -0
- package/bin/exiftool_files/lib/TAP/Parser.pm +1931 -0
- package/bin/exiftool_files/lib/Test/Builder/Formatter.pm +107 -0
- package/bin/exiftool_files/lib/Test/Builder/IO/Scalar.pm +659 -0
- package/bin/exiftool_files/lib/Test/Builder/Module.pm +182 -0
- package/bin/exiftool_files/lib/Test/Builder/Tester/Color.pm +51 -0
- package/bin/exiftool_files/lib/Test/Builder/Tester.pm +675 -0
- package/bin/exiftool_files/lib/Test/Builder/TodoDiag.pm +68 -0
- package/bin/exiftool_files/lib/Test/Builder.pm +2653 -0
- package/bin/exiftool_files/lib/Test/Harness.pm +618 -0
- package/bin/exiftool_files/lib/Test/More.pm +1997 -0
- package/bin/exiftool_files/lib/Test/Simple.pm +220 -0
- package/bin/exiftool_files/lib/Test/Tester/Capture.pm +241 -0
- package/bin/exiftool_files/lib/Test/Tester/CaptureRunner.pm +79 -0
- package/bin/exiftool_files/lib/Test/Tester/Delegate.pm +45 -0
- package/bin/exiftool_files/lib/Test/Tester.pm +695 -0
- package/bin/exiftool_files/lib/Test/Tutorial.pod +618 -0
- package/bin/exiftool_files/lib/Test/use/ok.pm +64 -0
- package/bin/exiftool_files/lib/Text/ParseWords.pm +303 -0
- package/bin/exiftool_files/lib/Tie/StdHandle.pm +2 -2
- package/bin/exiftool_files/lib/Time/HiRes.pm +73 -68
- package/bin/exiftool_files/lib/Time/Local.pm +82 -35
- package/bin/exiftool_files/lib/Time/Piece.pm +19 -4
- package/bin/exiftool_files/lib/Time/Seconds.pm +1 -1
- package/bin/exiftool_files/lib/UNIVERSAL.pm +203 -0
- package/bin/exiftool_files/lib/Unicode/GCString.pm +60 -0
- package/bin/exiftool_files/lib/Unicode/LineBreak/Constants.pm +68 -0
- package/bin/exiftool_files/lib/Unicode/LineBreak.pm +248 -0
- package/bin/exiftool_files/lib/Win32/API/Struct.pm +1 -177
- package/bin/exiftool_files/lib/Win32/API/Type.pm +1 -100
- package/bin/exiftool_files/lib/Win32/API.pm +1 -830
- package/bin/exiftool_files/lib/Win32/FindFile.pm +2 -123
- package/bin/exiftool_files/lib/Win32.pm +213 -89
- package/bin/exiftool_files/lib/Win32API/File.pm +1 -1
- package/bin/exiftool_files/lib/auto/B/B.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Compress/Raw/Bzip2/Bzip2.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Compress/Raw/Lzma/Lzma.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Compress/Raw/Lzma/autosplit.ix +3 -0
- package/bin/exiftool_files/lib/auto/Compress/Raw/Zlib/Zlib.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/CryptX/CryptX.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Cwd/Cwd.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Data/Dumper/Dumper.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Digest/MD5/MD5.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Digest/SHA/SHA.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Encode/Encode.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Fcntl/Fcntl.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/File/Glob/Glob.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/IO/Compress/Brotli/Brotli.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/IO/IO.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/List/Util/Util.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/MIME/Base64/Base64.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Math/BigInt/FastCalc/FastCalc.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Math/BigInt/GMP/GMP.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/POSIX/POSIX.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/PerlIO/scalar/scalar.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Socket/Socket.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Storable/Storable.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Time/HiRes/HiRes.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Time/Piece/Piece.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Unicode/LineBreak/LineBreak.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Win32/API/API.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Win32/FindFile/FindFile.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Win32/Win32.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/Win32API/File/File.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/mro/mro.xs.dll +0 -0
- package/bin/exiftool_files/lib/auto/re/re.xs.dll +0 -0
- package/bin/exiftool_files/lib/feature.pm +49 -17
- package/bin/exiftool_files/lib/mro.pm +4 -20
- package/bin/exiftool_files/lib/overload.pm +15 -15
- package/bin/exiftool_files/lib/parent.pm +10 -2
- package/bin/exiftool_files/lib/re.pm +91 -33
- package/bin/exiftool_files/lib/warnings.pm +17 -6
- package/bin/exiftool_files/libgcc_s_seh-1.dll +0 -0
- package/bin/exiftool_files/liblzma-5__.dll +0 -0
- package/bin/exiftool_files/libstdc++-6.dll +0 -0
- package/bin/exiftool_files/libwinpthread-1.dll +0 -0
- package/bin/exiftool_files/perl.exe +0 -0
- package/bin/exiftool_files/perl532.dll +0 -0
- package/package.json +6 -4
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/cs.pm +0 -978
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/de.pm +0 -1975
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/en_ca.pm +0 -44
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/en_gb.pm +0 -124
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/es.pm +0 -2921
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/fi.pm +0 -1116
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/fr.pm +0 -3171
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/it.pm +0 -2750
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/ja.pm +0 -10256
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/ko.pm +0 -4499
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/nl.pm +0 -1270
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/pl.pm +0 -3019
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/ru.pm +0 -18220
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/sk.pm +0 -441
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/sv.pm +0 -714
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/tr.pm +0 -452
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/zh_cn.pm +0 -2225
- package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/zh_tw.pm +0 -72
- package/bin/exiftool_files/libgcc_s_dw2-1.dll +0 -0
- package/bin/exiftool_files/perl530.dll +0 -0
|
@@ -5,14 +5,16 @@
|
|
|
5
5
|
|
|
6
6
|
package feature;
|
|
7
7
|
|
|
8
|
-
our $VERSION = '1.
|
|
8
|
+
our $VERSION = '1.58';
|
|
9
9
|
|
|
10
10
|
our %feature = (
|
|
11
11
|
fc => 'feature_fc',
|
|
12
|
+
isa => 'feature_isa',
|
|
12
13
|
say => 'feature_say',
|
|
13
14
|
state => 'feature_state',
|
|
14
15
|
switch => 'feature_switch',
|
|
15
16
|
bitwise => 'feature_bitwise',
|
|
17
|
+
indirect => 'feature_indirect',
|
|
16
18
|
evalbytes => 'feature_evalbytes',
|
|
17
19
|
signatures => 'feature_signatures',
|
|
18
20
|
current_sub => 'feature___SUB__',
|
|
@@ -24,13 +26,13 @@ our %feature = (
|
|
|
24
26
|
);
|
|
25
27
|
|
|
26
28
|
our %feature_bundle = (
|
|
27
|
-
"5.10" => [qw(say state switch)],
|
|
28
|
-
"5.11" => [qw(say state switch unicode_strings)],
|
|
29
|
-
"5.15" => [qw(current_sub evalbytes fc say state switch unicode_eval unicode_strings)],
|
|
30
|
-
"5.23" => [qw(current_sub evalbytes fc postderef_qq say state switch unicode_eval unicode_strings)],
|
|
31
|
-
"5.27" => [qw(bitwise current_sub evalbytes fc postderef_qq say state switch unicode_eval unicode_strings)],
|
|
32
|
-
"all" => [qw(bitwise current_sub declared_refs evalbytes fc postderef_qq refaliasing say signatures state switch unicode_eval unicode_strings)],
|
|
33
|
-
"default" => [qw()],
|
|
29
|
+
"5.10" => [qw(indirect say state switch)],
|
|
30
|
+
"5.11" => [qw(indirect say state switch unicode_strings)],
|
|
31
|
+
"5.15" => [qw(current_sub evalbytes fc indirect say state switch unicode_eval unicode_strings)],
|
|
32
|
+
"5.23" => [qw(current_sub evalbytes fc indirect postderef_qq say state switch unicode_eval unicode_strings)],
|
|
33
|
+
"5.27" => [qw(bitwise current_sub evalbytes fc indirect postderef_qq say state switch unicode_eval unicode_strings)],
|
|
34
|
+
"all" => [qw(bitwise current_sub declared_refs evalbytes fc indirect isa postderef_qq refaliasing say signatures state switch unicode_eval unicode_strings)],
|
|
35
|
+
"default" => [qw(indirect)],
|
|
34
36
|
);
|
|
35
37
|
|
|
36
38
|
$feature_bundle{"5.12"} = $feature_bundle{"5.11"};
|
|
@@ -49,6 +51,8 @@ $feature_bundle{"5.26"} = $feature_bundle{"5.23"};
|
|
|
49
51
|
$feature_bundle{"5.28"} = $feature_bundle{"5.27"};
|
|
50
52
|
$feature_bundle{"5.29"} = $feature_bundle{"5.27"};
|
|
51
53
|
$feature_bundle{"5.30"} = $feature_bundle{"5.27"};
|
|
54
|
+
$feature_bundle{"5.31"} = $feature_bundle{"5.27"};
|
|
55
|
+
$feature_bundle{"5.32"} = $feature_bundle{"5.27"};
|
|
52
56
|
$feature_bundle{"5.9.5"} = $feature_bundle{"5.10"};
|
|
53
57
|
my %noops = (
|
|
54
58
|
postderef => 1,
|
|
@@ -348,6 +352,26 @@ Reference to a Variable> for examples.
|
|
|
348
352
|
|
|
349
353
|
This feature is available from Perl 5.26 onwards.
|
|
350
354
|
|
|
355
|
+
=head2 The 'isa' feature
|
|
356
|
+
|
|
357
|
+
This allows the use of the C<isa> infix operator, which tests whether the
|
|
358
|
+
scalar given by the left operand is an object of the class given by the
|
|
359
|
+
right operand. See L<perlop/Class Instance Operator> for more details.
|
|
360
|
+
|
|
361
|
+
This feature is available from Perl 5.32 onwards.
|
|
362
|
+
|
|
363
|
+
=head2 The 'indirect' feature
|
|
364
|
+
|
|
365
|
+
This feature allows the use of L<indirect object
|
|
366
|
+
syntax|perlobj/Indirect Object Syntax> for method calls, e.g. C<new
|
|
367
|
+
Foo 1, 2;>. It is enabled by default, but can be turned off to
|
|
368
|
+
disallow indirect object syntax.
|
|
369
|
+
|
|
370
|
+
This feature is available under this name from Perl 5.32 onwards. In
|
|
371
|
+
previous versions, it was simply on all the time. To disallow (or
|
|
372
|
+
warn on) indirect object syntax on older Perls, see the L<indirect>
|
|
373
|
+
CPAN module.
|
|
374
|
+
|
|
351
375
|
=head1 FEATURE BUNDLES
|
|
352
376
|
|
|
353
377
|
It's possible to load multiple features together, using
|
|
@@ -360,41 +384,49 @@ The following feature bundles are available:
|
|
|
360
384
|
|
|
361
385
|
bundle features included
|
|
362
386
|
--------- -----------------
|
|
363
|
-
:default
|
|
387
|
+
:default indirect
|
|
364
388
|
|
|
365
|
-
:5.10 say state switch
|
|
389
|
+
:5.10 say state switch indirect
|
|
366
390
|
|
|
367
|
-
:5.12 say state switch unicode_strings
|
|
391
|
+
:5.12 say state switch unicode_strings indirect
|
|
368
392
|
|
|
369
|
-
:5.14 say state switch unicode_strings
|
|
393
|
+
:5.14 say state switch unicode_strings indirect
|
|
370
394
|
|
|
371
395
|
:5.16 say state switch unicode_strings
|
|
372
396
|
unicode_eval evalbytes current_sub fc
|
|
397
|
+
indirect
|
|
373
398
|
|
|
374
399
|
:5.18 say state switch unicode_strings
|
|
375
400
|
unicode_eval evalbytes current_sub fc
|
|
401
|
+
indirect
|
|
376
402
|
|
|
377
403
|
:5.20 say state switch unicode_strings
|
|
378
404
|
unicode_eval evalbytes current_sub fc
|
|
405
|
+
indirect
|
|
379
406
|
|
|
380
407
|
:5.22 say state switch unicode_strings
|
|
381
408
|
unicode_eval evalbytes current_sub fc
|
|
409
|
+
indirect
|
|
382
410
|
|
|
383
411
|
:5.24 say state switch unicode_strings
|
|
384
412
|
unicode_eval evalbytes current_sub fc
|
|
385
|
-
postderef_qq
|
|
413
|
+
postderef_qq indirect
|
|
386
414
|
|
|
387
415
|
:5.26 say state switch unicode_strings
|
|
388
416
|
unicode_eval evalbytes current_sub fc
|
|
389
|
-
postderef_qq
|
|
417
|
+
postderef_qq indirect
|
|
390
418
|
|
|
391
419
|
:5.28 say state switch unicode_strings
|
|
392
420
|
unicode_eval evalbytes current_sub fc
|
|
393
|
-
postderef_qq bitwise
|
|
421
|
+
postderef_qq bitwise indirect
|
|
394
422
|
|
|
395
423
|
:5.30 say state switch unicode_strings
|
|
396
424
|
unicode_eval evalbytes current_sub fc
|
|
397
|
-
postderef_qq bitwise
|
|
425
|
+
postderef_qq bitwise indirect
|
|
426
|
+
|
|
427
|
+
:5.32 say state switch unicode_strings
|
|
428
|
+
unicode_eval evalbytes current_sub fc
|
|
429
|
+
postderef_qq bitwise indirect
|
|
398
430
|
|
|
399
431
|
The C<:default> bundle represents the feature set that is enabled before
|
|
400
432
|
any C<use feature> or C<no feature> declaration.
|
|
@@ -479,7 +511,7 @@ sub __common {
|
|
|
479
511
|
my $import = shift;
|
|
480
512
|
my $bundle_number = $^H & $hint_mask;
|
|
481
513
|
my $features = $bundle_number != $hint_mask
|
|
482
|
-
|
|
514
|
+
&& $feature_bundle{$hint_bundles[$bundle_number >> $hint_shift]};
|
|
483
515
|
if ($features) {
|
|
484
516
|
# Features are enabled implicitly via bundle hints.
|
|
485
517
|
# Delete any keys that may be left over from last time.
|
|
@@ -12,7 +12,7 @@ use warnings;
|
|
|
12
12
|
|
|
13
13
|
# mro.pm versions < 1.00 reserved for MRO::Compat
|
|
14
14
|
# for partial back-compat to 5.[68].x
|
|
15
|
-
our $VERSION = '1.
|
|
15
|
+
our $VERSION = '1.23';
|
|
16
16
|
|
|
17
17
|
require XSLoader;
|
|
18
18
|
XSLoader::load('mro');
|
|
@@ -276,7 +276,7 @@ The problem exists because the anonymous subroutine being assigned to the
|
|
|
276
276
|
C<*Foo::foo> glob will show up in the call stack as being called
|
|
277
277
|
C<__ANON__> and not C<foo> as you might expect. Since C<next::method> uses
|
|
278
278
|
C<caller> to find the name of the method it was called in, it will fail in
|
|
279
|
-
this case.
|
|
279
|
+
this case.
|
|
280
280
|
|
|
281
281
|
But fear not, there's a simple solution. The module C<Sub::Name> will
|
|
282
282
|
reach into the perl internals and assign a name to an anonymous subroutine
|
|
@@ -312,27 +312,11 @@ works (like C<goto &maybe::next::method>);
|
|
|
312
312
|
|
|
313
313
|
=back
|
|
314
314
|
|
|
315
|
-
=head2
|
|
316
|
-
|
|
317
|
-
The Pugs prototype Perl 6 Object Model uses C3
|
|
318
|
-
|
|
319
|
-
=head2 Parrot
|
|
320
|
-
|
|
321
|
-
Parrot now uses C3
|
|
322
|
-
|
|
323
|
-
=over 4
|
|
324
|
-
|
|
325
|
-
=item L<http://use.perl.org/~autrijus/journal/25768>
|
|
326
|
-
|
|
327
|
-
=back
|
|
328
|
-
|
|
329
|
-
=head2 Python 2.3 MRO related links
|
|
315
|
+
=head2 Python 2.3 MRO
|
|
330
316
|
|
|
331
317
|
=over 4
|
|
332
318
|
|
|
333
|
-
=item L<
|
|
334
|
-
|
|
335
|
-
=item L<http://www.python.org/2.2.2/descrintro.html#mro>
|
|
319
|
+
=item L<https://www.python.org/download/releases/2.3/mro/>
|
|
336
320
|
|
|
337
321
|
=back
|
|
338
322
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
package overload;
|
|
2
2
|
|
|
3
|
-
our $VERSION = '1.
|
|
3
|
+
our $VERSION = '1.31';
|
|
4
4
|
|
|
5
5
|
%ops = (
|
|
6
6
|
with_assign => "+ - * / % ** << >> x .",
|
|
@@ -211,7 +211,7 @@ To overload built-in functions, see L<perlsub/Overriding Built-in Functions> ins
|
|
|
211
211
|
=head3 Declaration
|
|
212
212
|
|
|
213
213
|
Arguments of the C<use overload> directive are (key, value) pairs.
|
|
214
|
-
For the full set of legal keys, see L
|
|
214
|
+
For the full set of legal keys, see L</Overloadable Operations> below.
|
|
215
215
|
|
|
216
216
|
Operator implementations (the values) can be subroutines,
|
|
217
217
|
references to subroutines, or anonymous subroutines
|
|
@@ -274,7 +274,7 @@ For example, if C<$x> and C<$y> are C<Number>s:
|
|
|
274
274
|
|
|
275
275
|
Perl may also use C<minus()> to implement other operators which
|
|
276
276
|
have not been specified in the C<use overload> directive,
|
|
277
|
-
according to the rules for L
|
|
277
|
+
according to the rules for L</Magic Autogeneration> described later.
|
|
278
278
|
For example, the C<use overload> above declared no subroutine
|
|
279
279
|
for any of the operators C<-->, C<neg> (the overload key for
|
|
280
280
|
unary minus), or C<-=>. Thus
|
|
@@ -300,7 +300,7 @@ only to return the result of the subtraction:
|
|
|
300
300
|
Perl takes care of the assignment to $x.
|
|
301
301
|
In fact, such methods should I<not> modify their operands,
|
|
302
302
|
even if C<undef> is passed as the third argument
|
|
303
|
-
(see L
|
|
303
|
+
(see L</Overloadable Operations>).
|
|
304
304
|
|
|
305
305
|
The same is not true of implementations of C<++> and C<-->:
|
|
306
306
|
these are expected to modify their operand.
|
|
@@ -354,7 +354,7 @@ arithmetic metaphor.
|
|
|
354
354
|
Note: the preceding paragraph describes what happens when
|
|
355
355
|
Perl autogenerates the copy constructor for an object based
|
|
356
356
|
on a scalar.
|
|
357
|
-
For other cases, see L
|
|
357
|
+
For other cases, see L</Copy Constructor>.
|
|
358
358
|
|
|
359
359
|
=head2 Overloadable Operations
|
|
360
360
|
|
|
@@ -417,7 +417,7 @@ evaluating an expression.
|
|
|
417
417
|
&= |= ^= &.= |.= ^.=
|
|
418
418
|
|
|
419
419
|
Simple assignment is not overloadable (the C<'='> key is used
|
|
420
|
-
for the L
|
|
420
|
+
for the L</Copy Constructor>).
|
|
421
421
|
Perl does have a way to make assignments to an object do whatever
|
|
422
422
|
you want, but this involves using tie(), not overload -
|
|
423
423
|
see L<perlfunc/tie> and the L</COOKBOOK> examples below.
|
|
@@ -575,7 +575,7 @@ then it will not be called again - avoiding infinite recursion.
|
|
|
575
575
|
|
|
576
576
|
nomethod fallback =
|
|
577
577
|
|
|
578
|
-
See L
|
|
578
|
+
See L</Special Keys for C<use overload>>.
|
|
579
579
|
|
|
580
580
|
=back
|
|
581
581
|
|
|
@@ -663,7 +663,7 @@ C<'+='> and C<'-='> (and similar to C<'.='> and C<'x='> above):
|
|
|
663
663
|
|
|
664
664
|
Note also that the copy constructor (key C<'='>) may be
|
|
665
665
|
autogenerated, but only for objects based on scalars.
|
|
666
|
-
See L
|
|
666
|
+
See L</Copy Constructor>.
|
|
667
667
|
|
|
668
668
|
=head3 Minimal Set of Overloaded Operations
|
|
669
669
|
|
|
@@ -709,7 +709,7 @@ C<'+'>) result in a call
|
|
|
709
709
|
|
|
710
710
|
catch_all($a, 3, 1, '+')
|
|
711
711
|
|
|
712
|
-
See L
|
|
712
|
+
See L</How Perl Chooses an Operator Implementation>.
|
|
713
713
|
|
|
714
714
|
=head3 C<fallback>
|
|
715
715
|
|
|
@@ -723,7 +723,7 @@ operator.
|
|
|
723
723
|
|
|
724
724
|
use overload "fallback" => 0, # ... ;
|
|
725
725
|
|
|
726
|
-
This disables L
|
|
726
|
+
This disables L</Magic Autogeneration>.
|
|
727
727
|
|
|
728
728
|
=item * C<undef>
|
|
729
729
|
|
|
@@ -737,12 +737,12 @@ autogenerated then, instead of issuing an error message, Perl
|
|
|
737
737
|
is allowed to revert to what it would have done for that
|
|
738
738
|
operator if there had been no C<use overload> directive.
|
|
739
739
|
|
|
740
|
-
Note: in most cases, particularly the L
|
|
740
|
+
Note: in most cases, particularly the L</Copy Constructor>,
|
|
741
741
|
this is unlikely to be appropriate behaviour.
|
|
742
742
|
|
|
743
743
|
=back
|
|
744
744
|
|
|
745
|
-
See L
|
|
745
|
+
See L</How Perl Chooses an Operator Implementation>.
|
|
746
746
|
|
|
747
747
|
=head3 Copy Constructor
|
|
748
748
|
|
|
@@ -890,7 +890,7 @@ on the type of their operands.
|
|
|
890
890
|
As there is no way to instruct Perl to treat the operands as, e.g.,
|
|
891
891
|
numbers instead of strings, the result here may not be what you
|
|
892
892
|
expect.
|
|
893
|
-
See L
|
|
893
|
+
See L</BUGS AND PITFALLS>.
|
|
894
894
|
|
|
895
895
|
=head2 Losing Overloading
|
|
896
896
|
|
|
@@ -1413,12 +1413,12 @@ the tables of operations, and change the code which fills %subr to
|
|
|
1413
1413
|
}
|
|
1414
1414
|
|
|
1415
1415
|
Since subroutines implementing assignment operators are not required
|
|
1416
|
-
to modify their operands (see L
|
|
1416
|
+
to modify their operands (see L</Overloadable Operations> above),
|
|
1417
1417
|
we do not need anything special to make C<+=> and friends work,
|
|
1418
1418
|
besides adding these operators to %subr and defining a copy
|
|
1419
1419
|
constructor (needed since Perl has no way to know that the
|
|
1420
1420
|
implementation of C<'+='> does not mutate the argument -
|
|
1421
|
-
see L
|
|
1421
|
+
see L</Copy Constructor>).
|
|
1422
1422
|
|
|
1423
1423
|
To implement a copy constructor, add C<< '=' => \&cpy >> to C<use overload>
|
|
1424
1424
|
line, and code (this code assumes that mutators change things one level
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
package parent;
|
|
2
2
|
use strict;
|
|
3
3
|
|
|
4
|
-
our $VERSION = '0.
|
|
4
|
+
our $VERSION = '0.238';
|
|
5
5
|
|
|
6
6
|
sub import {
|
|
7
7
|
my $class = shift;
|
|
@@ -99,7 +99,15 @@ that had accumulated in it.
|
|
|
99
99
|
|
|
100
100
|
=head1 SEE ALSO
|
|
101
101
|
|
|
102
|
-
|
|
102
|
+
=over 4
|
|
103
|
+
|
|
104
|
+
=item L<base>
|
|
105
|
+
|
|
106
|
+
=item L<parent::versioned>
|
|
107
|
+
|
|
108
|
+
A fork of L<parent> that provides version checking in parent class modules.
|
|
109
|
+
|
|
110
|
+
=back
|
|
103
111
|
|
|
104
112
|
=head1 AUTHORS AND CONTRIBUTORS
|
|
105
113
|
|
|
@@ -4,7 +4,7 @@ package re;
|
|
|
4
4
|
use strict;
|
|
5
5
|
use warnings;
|
|
6
6
|
|
|
7
|
-
our $VERSION = "0.
|
|
7
|
+
our $VERSION = "0.40";
|
|
8
8
|
our @ISA = qw(Exporter);
|
|
9
9
|
our @EXPORT_OK = ('regmust',
|
|
10
10
|
qw(is_regexp regexp_pattern
|
|
@@ -54,33 +54,41 @@ sub setcolor {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
my %flags = (
|
|
57
|
-
COMPILE
|
|
58
|
-
PARSE
|
|
59
|
-
OPTIMISE
|
|
60
|
-
TRIEC
|
|
61
|
-
DUMP
|
|
62
|
-
FLAGS
|
|
63
|
-
TEST
|
|
64
|
-
|
|
65
|
-
EXECUTE
|
|
66
|
-
INTUIT
|
|
67
|
-
MATCH
|
|
68
|
-
TRIEE
|
|
69
|
-
|
|
70
|
-
EXTRA
|
|
71
|
-
TRIEM
|
|
72
|
-
OFFSETS
|
|
73
|
-
OFFSETSDBG
|
|
74
|
-
STATE
|
|
75
|
-
OPTIMISEM
|
|
76
|
-
STACK
|
|
77
|
-
BUFFERS
|
|
78
|
-
GPOS
|
|
57
|
+
COMPILE => 0x0000FF,
|
|
58
|
+
PARSE => 0x000001,
|
|
59
|
+
OPTIMISE => 0x000002,
|
|
60
|
+
TRIEC => 0x000004,
|
|
61
|
+
DUMP => 0x000008,
|
|
62
|
+
FLAGS => 0x000010,
|
|
63
|
+
TEST => 0x000020,
|
|
64
|
+
|
|
65
|
+
EXECUTE => 0x00FF00,
|
|
66
|
+
INTUIT => 0x000100,
|
|
67
|
+
MATCH => 0x000200,
|
|
68
|
+
TRIEE => 0x000400,
|
|
69
|
+
|
|
70
|
+
EXTRA => 0x3FF0000,
|
|
71
|
+
TRIEM => 0x0010000,
|
|
72
|
+
OFFSETS => 0x0020000,
|
|
73
|
+
OFFSETSDBG => 0x0040000,
|
|
74
|
+
STATE => 0x0080000,
|
|
75
|
+
OPTIMISEM => 0x0100000,
|
|
76
|
+
STACK => 0x0280000,
|
|
77
|
+
BUFFERS => 0x0400000,
|
|
78
|
+
GPOS => 0x0800000,
|
|
79
|
+
DUMP_PRE_OPTIMIZE => 0x1000000,
|
|
80
|
+
WILDCARD => 0x2000000,
|
|
79
81
|
);
|
|
80
|
-
$flags{ALL} = -1 & ~($flags{OFFSETS}
|
|
82
|
+
$flags{ALL} = -1 & ~($flags{OFFSETS}
|
|
83
|
+
|$flags{OFFSETSDBG}
|
|
84
|
+
|$flags{BUFFERS}
|
|
85
|
+
|$flags{DUMP_PRE_OPTIMIZE}
|
|
86
|
+
|$flags{WILDCARD}
|
|
87
|
+
);
|
|
81
88
|
$flags{All} = $flags{all} = $flags{DUMP} | $flags{EXECUTE};
|
|
82
89
|
$flags{Extra} = $flags{EXECUTE} | $flags{COMPILE} | $flags{GPOS};
|
|
83
|
-
$flags{More} = $flags{MORE} =
|
|
90
|
+
$flags{More} = $flags{MORE} =
|
|
91
|
+
$flags{All} | $flags{TRIEC} | $flags{TRIEM} | $flags{STATE};
|
|
84
92
|
$flags{State} = $flags{DUMP} | $flags{EXECUTE} | $flags{STATE};
|
|
85
93
|
$flags{TRIE} = $flags{DUMP} | $flags{EXECUTE} | $flags{TRIEC};
|
|
86
94
|
|
|
@@ -113,6 +121,8 @@ sub bits {
|
|
|
113
121
|
my $on = shift;
|
|
114
122
|
my $bits = 0;
|
|
115
123
|
my $turning_all_off = ! @_ && ! $on;
|
|
124
|
+
my $seen_Debug = 0;
|
|
125
|
+
my $seen_debug = 0;
|
|
116
126
|
if ($turning_all_off) {
|
|
117
127
|
|
|
118
128
|
# Pretend were called with certain parameters, which are best dealt
|
|
@@ -126,8 +136,15 @@ sub bits {
|
|
|
126
136
|
foreach my $idx (0..$#_){
|
|
127
137
|
my $s=$_[$idx];
|
|
128
138
|
if ($s eq 'Debug' or $s eq 'Debugcolor') {
|
|
139
|
+
if (! $seen_Debug) {
|
|
140
|
+
$seen_Debug = 1;
|
|
141
|
+
|
|
142
|
+
# Reset to nothing, and then add what follows. $seen_Debug
|
|
143
|
+
# allows, though unlikely someone would do it, more than one
|
|
144
|
+
# Debug and flags in the arguments
|
|
145
|
+
${^RE_DEBUG_FLAGS} = 0;
|
|
146
|
+
}
|
|
129
147
|
setcolor() if $s =~/color/i;
|
|
130
|
-
${^RE_DEBUG_FLAGS} = 0 unless defined ${^RE_DEBUG_FLAGS};
|
|
131
148
|
for my $idx ($idx+1..$#_) {
|
|
132
149
|
if ($flags{$_[$idx]}) {
|
|
133
150
|
if ($on) {
|
|
@@ -144,9 +161,13 @@ sub bits {
|
|
|
144
161
|
_load_unload($on ? 1 : ${^RE_DEBUG_FLAGS});
|
|
145
162
|
last;
|
|
146
163
|
} elsif ($s eq 'debug' or $s eq 'debugcolor') {
|
|
164
|
+
|
|
165
|
+
# These default flags should be kept in sync with the same values
|
|
166
|
+
# in regcomp.h
|
|
167
|
+
${^RE_DEBUG_FLAGS} = $flags{'EXECUTE'} | $flags{'DUMP'};
|
|
147
168
|
setcolor() if $s =~/color/i;
|
|
148
169
|
_load_unload($on);
|
|
149
|
-
|
|
170
|
+
$seen_debug = 1;
|
|
150
171
|
} elsif (exists $bitmask{$s}) {
|
|
151
172
|
$bits |= $bitmask{$s};
|
|
152
173
|
} elsif ($EXPORT_OK{$s}) {
|
|
@@ -255,9 +276,15 @@ sub bits {
|
|
|
255
276
|
: ($^H &= ~$flags_hint);
|
|
256
277
|
} else {
|
|
257
278
|
require Carp;
|
|
258
|
-
|
|
279
|
+
if ($seen_debug && defined $flags{$s}) {
|
|
280
|
+
Carp::carp("Use \"Debug\" not \"debug\", to list debug types"
|
|
281
|
+
. " in \"re\". \"$s\" ignored");
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
Carp::carp("Unknown \"re\" subpragma '$s' (known ones are: ",
|
|
259
285
|
join(', ', map {qq('$_')} 'debug', 'debugcolor', sort keys %bitmask),
|
|
260
286
|
")");
|
|
287
|
+
}
|
|
261
288
|
}
|
|
262
289
|
}
|
|
263
290
|
|
|
@@ -396,7 +423,7 @@ equivalent to
|
|
|
396
423
|
qr/\x{AB}C/
|
|
397
424
|
|
|
398
425
|
that is, the character whose code point value is C<0xAB>, followed by the
|
|
399
|
-
letter C<C>. But since C<C> is a
|
|
426
|
+
letter C<C>. But since C<C> is a hex digit, there is a reasonable chance
|
|
400
427
|
that the intent was
|
|
401
428
|
|
|
402
429
|
qr/\x{ABC}/
|
|
@@ -510,7 +537,7 @@ purposes. The options are as follows:
|
|
|
510
537
|
|
|
511
538
|
=item COMPILE
|
|
512
539
|
|
|
513
|
-
Turns on all compile related debug options.
|
|
540
|
+
Turns on all non-extra compile related debug options.
|
|
514
541
|
|
|
515
542
|
=item PARSE
|
|
516
543
|
|
|
@@ -544,7 +571,7 @@ Print output intended for testing the internals of the compile process
|
|
|
544
571
|
|
|
545
572
|
=item EXECUTE
|
|
546
573
|
|
|
547
|
-
Turns on all execute related debug options.
|
|
574
|
+
Turns on all non-extra execute related debug options.
|
|
548
575
|
|
|
549
576
|
=item MATCH
|
|
550
577
|
|
|
@@ -617,6 +644,36 @@ debug options.
|
|
|
617
644
|
Almost definitely only useful to people hacking
|
|
618
645
|
on the offsets part of the debug engine.
|
|
619
646
|
|
|
647
|
+
=item DUMP_PRE_OPTIMIZE
|
|
648
|
+
|
|
649
|
+
Enable the dumping of the compiled pattern before the optimization phase.
|
|
650
|
+
|
|
651
|
+
=item WILDCARD
|
|
652
|
+
|
|
653
|
+
When Perl encounters a wildcard subpattern, (see L<perlunicode/Wildcards in
|
|
654
|
+
Property Values>), it suspends compilation of the main pattern, compiles the
|
|
655
|
+
subpattern, and then matches that against all legal possibilities to determine
|
|
656
|
+
the actual code points the subpattern matches. After that it adds these to
|
|
657
|
+
the main pattern, and continues its compilation.
|
|
658
|
+
|
|
659
|
+
You may very well want to see how your subpattern gets compiled, but it is
|
|
660
|
+
likely of less use to you to see how Perl matches that against all the legal
|
|
661
|
+
possibilities, as that is under control of Perl, not you. Therefore, the
|
|
662
|
+
debugging information of the compilation portion is as specified by the other
|
|
663
|
+
options, but the debugging output of the matching portion is normally
|
|
664
|
+
suppressed.
|
|
665
|
+
|
|
666
|
+
You can use the WILDCARD option to enable the debugging output of this
|
|
667
|
+
subpattern matching. Careful! This can lead to voluminous outputs, and it
|
|
668
|
+
may not make much sense to you what and why Perl is doing what it is.
|
|
669
|
+
But it may be helpful to you to see why things aren't going the way you
|
|
670
|
+
expect.
|
|
671
|
+
|
|
672
|
+
Note that this option alone doesn't cause any debugging information to be
|
|
673
|
+
output. What it does is stop the normal suppression of execution-related
|
|
674
|
+
debugging information during the matching portion of the compilation of
|
|
675
|
+
wildcards. You also have to specify which execution debugging information you
|
|
676
|
+
want, such as by also including the EXECUTE option.
|
|
620
677
|
|
|
621
678
|
=back
|
|
622
679
|
|
|
@@ -628,14 +685,15 @@ These are useful shortcuts to save on the typing.
|
|
|
628
685
|
|
|
629
686
|
=item ALL
|
|
630
687
|
|
|
631
|
-
Enable all options at once except OFFSETS, OFFSETSDBG and
|
|
688
|
+
Enable all options at once except OFFSETS, OFFSETSDBG, BUFFERS, WILDCARD, and
|
|
689
|
+
DUMP_PRE_OPTIMIZE.
|
|
632
690
|
(To get every single option without exception, use both ALL and EXTRA, or
|
|
633
691
|
starting in 5.30 on a C<-DDEBUGGING>-enabled perl interpreter, use
|
|
634
692
|
the B<-Drv> command-line switches.)
|
|
635
693
|
|
|
636
694
|
=item All
|
|
637
695
|
|
|
638
|
-
Enable DUMP and all execute options. Equivalent to:
|
|
696
|
+
Enable DUMP and all non-extra execute options. Equivalent to:
|
|
639
697
|
|
|
640
698
|
use re 'debug';
|
|
641
699
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
package warnings;
|
|
7
7
|
|
|
8
|
-
our $VERSION = "1.
|
|
8
|
+
our $VERSION = "1.47";
|
|
9
9
|
|
|
10
10
|
# Verify that we're called correctly so that warnings will work.
|
|
11
11
|
# Can't use Carp, since Carp uses us!
|
|
@@ -106,6 +106,9 @@ our %Offsets = (
|
|
|
106
106
|
'experimental::private_use' => 140,
|
|
107
107
|
'experimental::uniprop_wildcards' => 142,
|
|
108
108
|
'experimental::vlb' => 144,
|
|
109
|
+
|
|
110
|
+
# Warnings Categories added in Perl 5.031
|
|
111
|
+
'experimental::isa' => 146,
|
|
109
112
|
);
|
|
110
113
|
|
|
111
114
|
our %Bits = (
|
|
@@ -119,11 +122,12 @@ our %Bits = (
|
|
|
119
122
|
'digit' => "\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [31]
|
|
120
123
|
'exec' => "\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
|
|
121
124
|
'exiting' => "\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
|
|
122
|
-
'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x55\x51\x15\x50\x51\
|
|
125
|
+
'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x55\x51\x15\x50\x51\x05", # [51..56,58..62,66..68,70..73]
|
|
123
126
|
'experimental::alpha_assertions' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [67]
|
|
124
127
|
'experimental::bitwise' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00", # [58]
|
|
125
128
|
'experimental::const_attr' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00", # [59]
|
|
126
129
|
'experimental::declared_refs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00", # [66]
|
|
130
|
+
'experimental::isa' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04", # [73]
|
|
127
131
|
'experimental::lexical_subs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00", # [52]
|
|
128
132
|
'experimental::postderef' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00", # [55]
|
|
129
133
|
'experimental::private_use' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00", # [70]
|
|
@@ -195,11 +199,12 @@ our %DeadBits = (
|
|
|
195
199
|
'digit' => "\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [31]
|
|
196
200
|
'exec' => "\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
|
|
197
201
|
'exiting' => "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
|
|
198
|
-
'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xaa\xa2\x2a\xa0\xa2\
|
|
202
|
+
'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xaa\xa2\x2a\xa0\xa2\x0a", # [51..56,58..62,66..68,70..73]
|
|
199
203
|
'experimental::alpha_assertions' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [67]
|
|
200
204
|
'experimental::bitwise' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00", # [58]
|
|
201
205
|
'experimental::const_attr' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00", # [59]
|
|
202
206
|
'experimental::declared_refs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00", # [66]
|
|
207
|
+
'experimental::isa' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08", # [73]
|
|
203
208
|
'experimental::lexical_subs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00", # [52]
|
|
204
209
|
'experimental::postderef' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00", # [55]
|
|
205
210
|
'experimental::private_use' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00", # [70]
|
|
@@ -262,8 +267,8 @@ our %DeadBits = (
|
|
|
262
267
|
|
|
263
268
|
# These are used by various things, including our own tests
|
|
264
269
|
our $NONE = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
|
|
265
|
-
our $DEFAULT = "\x10\x01\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\x55\x51\x55\x50\x51\
|
|
266
|
-
our $LAST_BIT =
|
|
270
|
+
our $DEFAULT = "\x10\x01\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\x55\x51\x55\x50\x51\x05", # [2,4,22,23,25,52..56,58..63,66..68,70..73]
|
|
271
|
+
our $LAST_BIT = 148 ;
|
|
267
272
|
our $BYTES = 19 ;
|
|
268
273
|
|
|
269
274
|
sub Croaker
|
|
@@ -684,6 +689,10 @@ disable compile-time warnings you need to rewrite the code like this:
|
|
|
684
689
|
my $b; chop $b;
|
|
685
690
|
}
|
|
686
691
|
|
|
692
|
+
And note that unlike the first example, this will permanently set C<$^W>
|
|
693
|
+
since it cannot both run during compile-time and be localized to a
|
|
694
|
+
run-time block.
|
|
695
|
+
|
|
687
696
|
The other big problem with C<$^W> is the way you can inadvertently
|
|
688
697
|
change the warning setting in unexpected places in your code. For example,
|
|
689
698
|
when the code below is run (without the B<-w> flag), the second call
|
|
@@ -719,7 +728,7 @@ X<-w>
|
|
|
719
728
|
|
|
720
729
|
This is the existing flag. If the lexical warnings pragma is B<not>
|
|
721
730
|
used in any of you code, or any of the modules that you use, this flag
|
|
722
|
-
will enable warnings everywhere. See L
|
|
731
|
+
will enable warnings everywhere. See L</Backward Compatibility> for
|
|
723
732
|
details of how this flag interacts with lexical warnings.
|
|
724
733
|
|
|
725
734
|
=item B<-W>
|
|
@@ -813,6 +822,8 @@ The current hierarchy is:
|
|
|
813
822
|
| |
|
|
814
823
|
| +- experimental::declared_refs
|
|
815
824
|
| |
|
|
825
|
+
| +- experimental::isa
|
|
826
|
+
| |
|
|
816
827
|
| +- experimental::lexical_subs
|
|
817
828
|
| |
|
|
818
829
|
| +- experimental::postderef
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|