Checking if your kit is complete... Looks good Writing Makefile for Parse::Win32Registry cp lib/Parse/Win32Registry.pm blib/lib/Parse/Win32Registry.pm cp lib/Parse/Win32Registry/WinNT/File.pm blib/lib/Parse/Win32Registry/WinNT/File.pm cp lib/Parse/Win32Registry/WinNT/Key.pm blib/lib/Parse/Win32Registry/WinNT/Key.pm cp lib/Parse/Win32Registry/Key.pm blib/lib/Parse/Win32Registry/Key.pm cp lib/Parse/Win32Registry/Win95/File.pm blib/lib/Parse/Win32Registry/Win95/File.pm cp lib/Parse/Win32Registry/WinNT/Value.pm blib/lib/Parse/Win32Registry/WinNT/Value.pm cp lib/Parse/Win32Registry/Value.pm blib/lib/Parse/Win32Registry/Value.pm cp lib/Parse/Win32Registry/Win95/Value.pm blib/lib/Parse/Win32Registry/Win95/Value.pm cp lib/Parse/Win32Registry/Win95/Key.pm blib/lib/Parse/Win32Registry/Win95/Key.pm cp bin/regdump.pl blib/script/regdump.pl /Users/cpanrun/build/5.8.8/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/regdump.pl cp bin/regdiff.pl blib/script/regdiff.pl /Users/cpanrun/build/5.8.8/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/regdiff.pl cp bin/regfind.pl blib/script/regfind.pl /Users/cpanrun/build/5.8.8/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/regfind.pl Manifying blib/man3/Parse::Win32Registry.3 PERL_DL_NONLAZY=1 /Users/cpanrun/build/5.8.8/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(1, 'blib/lib', 'blib/arch')" t/*.t t/constants....ok 1 - REG_NONE == 0 ok 2 - REG_SZ == 1 ok 3 - REG_EXPAND_SZ == 2 ok 4 - REG_BINARY == 3 ok 5 - REG_DWORD == 4 ok 6 - REG_DWORD_BIG_ENDIAN == 5 ok 7 - REG_LINK == 6 ok 8 - REG_MULTI_SZ == 7 ok 9 - REG_RESOURCE_LIST == 8 ok 10 - REG_FULL_RESOURCE_DESCRIPTOR == 9 ok 11 - REG_RESOURCE_REQUIREMENTS_LIST == 10 ok 12 - REG_QWORD == 11 1..12 ok t/errors.......ok 1 - $registry = Parse::Win32Registry->new should fail ok 2 - ...with error 'No filename specified...' ok 3 - $registry = Parse::Win32Registry->new('t/nonexistent_file') should fail ok 4 - ...with error 'Unable to open...' ok 5 - $registry = Parse::Win32Registry->new('t/empty_file.rf') should fail ok 6 - ...with error 'Could not read registry file header...' ok 7 - $registry = Parse::Win32Registry->new('t/invalid_regf_header.rf') should fail ok 8 - ...with error 'Not a registry file...' ok 9 - convert_filetime_to_epoch_time("\0\0\0\0") should fail ok 10 - ...with error 'Invalid filetime size...' ok 11 - $registry = Parse::Win32Registry::WinNT::File->new should fail ok 12 - ...with error 'No filename specified...' ok 13 - $registry = Parse::Win32Registry::WinNT::File->new('t/nonexistent_file') should fail ok 14 - ...with error 'Unable to open...' ok 15 - $registry = Parse::Win32Registry::WinNT::File->new('t/empty_file.rf') should fail ok 16 - ...with error 'Could not read registry file header...' ok 17 - $registry = Parse::Win32Registry::WinNT::File->new('t/invalid_regf_header.rf') should fail ok 18 - ...with error 'Invalid registry file signature...' ok 19 - $registry = Parse::Win32Registry::WinNT::File->new('t/missing_hbin.rf') should fail ok 20 - ...with error 'Could not read first key at offset 0x...' ok 21 - $registry = Parse::Win32Registry::WinNT::File->new('t/invalid_first_key.rf') should fail ok 22 - ...with error 'Did not find root key at offset 0x...' ok 23 - $key = Parse::Win32Registry::WinNT::Key->new('t/empty_file.rf', ...) should fail ok 24 - ...with error 'Could not read key at offset 0x...' ok 25 - $key = Parse::Win32Registry::WinNT::Key->new('t/invalid_nk_signature.rf', ...) should fail ok 26 - ...with error 'Invalid key signature at offset 0x...' ok 27 - $key = Parse::Win32Registry::WinNT::Key->new('t/invalid_nk_node_type.rf', ...) should succeed ok 28 - ...with warning 'Invalid key node type at offset 0x...' ok 29 - $key = Parse::Win32Registry::WinNT::Key->new('t/missing_nk_name.rf', ...) should fail ok 30 - ...with error 'Could not read key name at offset 0x...' ok 31 - $key = Parse::Win32Registry::WinNT::Key->new('t/missing_subkey_list_header.rf', ...) should succeed ok 32 - $key->get_list_of_subkeys should fail ok 33 - ...with error 'Could not read subkey list header at offset 0x...' ok 34 - $key = Parse::Win32Registry::WinNT::Key->new('t/missing_subkey_list.rf', ...) should succeed ok 35 - $key->get_list_of_subkeys should fail ok 36 - ...with error 'Could not read subkey list at offset 0x...' ok 37 - $key = Parse::Win32Registry::WinNT::Key->new('t/missing_value_list.rf', ...) should succeed ok 38 - $key->get_list_of_values should fail ok 39 - ...with error 'Could not read value list at offset 0x...' ok 40 - $key = Parse::Win32Registry::WinNT::Key->new('t/winnt_key_tests.rf', ...) should succeed ok 41 - $key->get_subkey(undef) should fail ok 42 - ...with error 'No subkey name specified...' ok 43 - $value = Parse::Win32Registry::WinNT::Value->new('t/empty_file.rf', ...) should fail ok 44 - ...with error 'Could not read value at offset 0x...' ok 45 - $value = Parse::Win32Registry::WinNT::Value->new('t/invalid_vk_signature.rf', ...) should fail ok 46 - ...with error 'Invalid value signature at offset 0x...' ok 47 - $value = Parse::Win32Registry::WinNT::Value->new('t/missing_vk_name.rf', ...) should fail ok 48 - ...with error 'Could not read value name at offset 0x...' ok 49 - $value = Parse::Win32Registry::WinNT::Value->new('t/invalid_vk_inline_data.rf', ...) should fail ok 50 - ...with error 'Invalid inline data length at offset 0x...' ok 51 - $value = Parse::Win32Registry::WinNT::Value->new('t/missing_vk_data.rf', ...) should fail ok 52 - ...with error 'Could not read data at offset 0x...' ok 53 - $registry = Parse::Win32Registry::Win95::File->new should fail ok 54 - ...with error 'No filename specified...' ok 55 - $registry = Parse::Win32Registry::Win95::File->new('t/nonexistent_file') should fail ok 56 - ...with error 'Unable to open...' ok 57 - $registry = Parse::Win32Registry::Win95::File->new('t/empty_file.rf') should fail ok 58 - ...with error 'Could not read registry file header...' ok 59 - $registry = Parse::Win32Registry::Win95::File->new('t/invalid_creg_header.rf') should fail ok 60 - ...with error 'Invalid registry file signature...' ok 61 - $registry = Parse::Win32Registry::Win95::File->new('t/missing_rgkn_header.rf') should fail ok 62 - ...with error 'Could not read RGKN header at offset 0x...' ok 63 - $registry = Parse::Win32Registry::Win95::File->new('t/invalid_rgkn_header.rf') should fail ok 64 - ...with error 'Invalid RGKN block signature at offset 0x...' ok 65 - $registry = Parse::Win32Registry::Win95::File->new('t/missing_root_key.rf') should succeed ok 66 - $registry->get_root_key should fail ok 67 - ...with error 'Could not read RGKN entry for key at offset 0x...' ok 68 - $key = Parse::Win32Registry::Win95::Key->new('t/empty_file.rf', ...) should fail ok 69 - ...with error 'Could not read RGKN entry for key at offset 0x...' ok 70 - $key = Parse::Win32Registry::Win95::Key->new('t/invalid_rgkn_block_num.rf', ...) should fail ok 71 - ...with error 'Invalid RGKN block number for key at offset 0x...' ok 72 - $key = Parse::Win32Registry::Win95::Key->new('t/missing_rgdb_header.rf', ...) should fail ok 73 - ...with error 'Could not read RGDB block header at offset 0x...' ok 74 - $key = Parse::Win32Registry::Win95::Key->new('t/invalid_rgdb_header.rf', ...) should fail ok 75 - ...with error 'Invalid RGDB block signature at offset 0x...' ok 76 - $key = Parse::Win32Registry::Win95::Key->new('t/missing_rgdb_entry_for_key.rf', ...) should fail ok 77 - ...with error 'Could not read RGDB entry for key at offset 0x...' ok 78 - $key = Parse::Win32Registry::Win95::Key->new('t/missing_rgdb_entry_name_for_key.rf', ...) should fail ok 79 - ...with error 'Could not read RGDB entry name for key at offset 0x...' ok 80 - $key = Parse::Win32Registry::Win95::Key->new('t/no_matching_rgdb_entry_for_key.rf', ...) should fail ok 81 - ...with error 'Could not find RGDB entry for key at offset 0x...' ok 82 - $key = Parse::Win32Registry::Win95::Key->new('t/win95_key_tests.rf', ...) should succeed ok 83 - $key->get_subkey(undef) should fail ok 84 - ...with error 'No subkey name specified...' ok 85 - $value = Parse::Win32Registry::Win95::Value->new('t/empty_file.rf', ...) should fail ok 86 - ...with error 'Could not read RGDB entry for value at offset 0x...' ok 87 - $value = Parse::Win32Registry::Win95::Value->new('t/missing_rgdb_entry_name_for_value.rf', ...) should fail ok 88 - ...with error 'Could not read RGDB entry name for value at offset 0x...' ok 89 - $value = Parse::Win32Registry::Win95::Value->new('t/missing_rgdb_entry_data_for_value.rf', ...) should fail ok 90 - ...with error 'Could not read RGDB entry data for value at offset 0x...' 1..90 ok t/keys.........ok 1 - registry defined ok 2 - The object isa Parse::Win32Registry::Win95::File ok 3 - root key defined ok 4 - The object isa Parse::Win32Registry::Win95::Key ok 5 - root key name ok 6 - root key path ok 7 - root key has 3 subkeys ok 8 - key defined ok 9 - get_name eq 'key1' ok 10 - get_path eq '\key1' ok 11 - has 3 subkeys ok 12 - has 0 values ok 13 - get_timestamp undefined ok 14 - get_timestamp_as_string eq '(undefined)' ok 15 - as_string eq '\key1' ok 16 - key defined ok 17 - get_name eq 'key2' ok 18 - get_path eq '\key2' ok 19 - has 6 subkeys ok 20 - has 0 values ok 21 - get_timestamp undefined ok 22 - get_timestamp_as_string eq '(undefined)' ok 23 - as_string eq '\key2' ok 24 - key defined ok 25 - get_name eq 'key1' ok 26 - get_path eq '\key1\key1' ok 27 - has 0 subkeys ok 28 - has 0 values ok 29 - get_timestamp undefined ok 30 - get_timestamp_as_string eq '(undefined)' ok 31 - as_string eq '\key1\key1' ok 32 - key defined ok 33 - get_name eq 'key2' ok 34 - get_path eq '\key1\key2' ok 35 - has 0 subkeys ok 36 - has 0 values ok 37 - get_timestamp undefined ok 38 - get_timestamp_as_string eq '(undefined)' ok 39 - as_string eq '\key1\key2' ok 40 - key defined ok 41 - get_name eq 'key3' ok 42 - get_path eq '\key1\key3' ok 43 - has 0 subkeys ok 44 - has 0 values ok 45 - get_timestamp undefined ok 46 - get_timestamp_as_string eq '(undefined)' ok 47 - as_string eq '\key1\key3' ok 48 - key defined ok 49 - get_name eq 'key1' ok 50 - get_path eq '\key2\key1' ok 51 - has 0 subkeys ok 52 - has 0 values ok 53 - get_timestamp undefined ok 54 - get_timestamp_as_string eq '(undefined)' ok 55 - as_string eq '\key2\key1' ok 56 - key defined ok 57 - get_name eq 'key2' ok 58 - get_path eq '\key2\key2' ok 59 - has 0 subkeys ok 60 - has 0 values ok 61 - get_timestamp undefined ok 62 - get_timestamp_as_string eq '(undefined)' ok 63 - as_string eq '\key2\key2' ok 64 - key defined ok 65 - get_name eq 'key3' ok 66 - get_path eq '\key2\key3' ok 67 - has 0 subkeys ok 68 - has 0 values ok 69 - get_timestamp undefined ok 70 - get_timestamp_as_string eq '(undefined)' ok 71 - as_string eq '\key2\key3' ok 72 - key defined ok 73 - get_name eq 'key4' ok 74 - get_path eq '\key2\key4' ok 75 - has 0 subkeys ok 76 - has 0 values ok 77 - get_timestamp undefined ok 78 - get_timestamp_as_string eq '(undefined)' ok 79 - as_string eq '\key2\key4' ok 80 - key defined ok 81 - get_name eq 'key5' ok 82 - get_path eq '\key2\key5' ok 83 - has 0 subkeys ok 84 - has 0 values ok 85 - get_timestamp undefined ok 86 - get_timestamp_as_string eq '(undefined)' ok 87 - as_string eq '\key2\key5' ok 88 - key defined ok 89 - get_name eq 'key6' ok 90 - get_path eq '\key2\key6' ok 91 - has 0 subkeys ok 92 - has 0 values ok 93 - get_timestamp undefined ok 94 - get_timestamp_as_string eq '(undefined)' ok 95 - as_string eq '\key2\key6' ok 96 - key defined ok 97 - get_name eq '' ok 98 - get_path eq '\' ok 99 - has 1 subkeys ok 100 - has 0 values ok 101 - get_timestamp undefined ok 102 - get_timestamp_as_string eq '(undefined)' ok 103 - as_string eq '\' ok 104 - key defined ok 105 - get_name eq '0' ok 106 - get_path eq '\\0' ok 107 - has 0 subkeys ok 108 - has 0 values ok 109 - get_timestamp undefined ok 110 - get_timestamp_as_string eq '(undefined)' ok 111 - as_string eq '\\0' ok 112 - registry defined ok 113 - The object isa Parse::Win32Registry::WinNT::File ok 114 - root key defined ok 115 - The object isa Parse::Win32Registry::WinNT::Key ok 116 - root key name ok 117 - root key path ok 118 - root key has 3 subkeys ok 119 - key defined ok 120 - get_name eq 'key1' ok 121 - get_path eq '$$$PROTO.HIV\key1' ok 122 - has 3 subkeys ok 123 - has 0 values ok 124 - get_timestamp == 993752854 ok 125 - get_timestamp_as_string eq '2001-06-28T18:27:34Z' ok 126 - as_string eq '$$$PROTO.HIV\key1 [2001-06-28T18:27:34Z]' ok 127 - key defined ok 128 - get_name eq 'key2' ok 129 - get_path eq '$$$PROTO.HIV\key2' ok 130 - has 6 subkeys ok 131 - has 0 values ok 132 - get_timestamp == 1021900351 ok 133 - get_timestamp_as_string eq '2002-05-20T13:12:31Z' ok 134 - as_string eq '$$$PROTO.HIV\key2 [2002-05-20T13:12:31Z]' ok 135 - key defined ok 136 - get_name eq 'key1' ok 137 - get_path eq '$$$PROTO.HIV\key1\key1' ok 138 - has 0 subkeys ok 139 - has 0 values ok 140 - get_timestamp == 1050047849 ok 141 - get_timestamp_as_string eq '2003-04-11T07:57:29Z' ok 142 - as_string eq '$$$PROTO.HIV\key1\key1 [2003-04-11T07:57:29Z]' ok 143 - key defined ok 144 - get_name eq 'key2' ok 145 - get_path eq '$$$PROTO.HIV\key1\key2' ok 146 - has 0 subkeys ok 147 - has 0 values ok 148 - get_timestamp == 1078195347 ok 149 - get_timestamp_as_string eq '2004-03-02T02:42:27Z' ok 150 - as_string eq '$$$PROTO.HIV\key1\key2 [2004-03-02T02:42:27Z]' ok 151 - key defined ok 152 - get_name eq 'key3' ok 153 - get_path eq '$$$PROTO.HIV\key1\key3' ok 154 - has 0 subkeys ok 155 - has 0 values ok 156 - get_timestamp == 1106342844 ok 157 - get_timestamp_as_string eq '2005-01-21T21:27:24Z' ok 158 - as_string eq '$$$PROTO.HIV\key1\key3 [2005-01-21T21:27:24Z]' ok 159 - key defined ok 160 - get_name eq 'key1' ok 161 - get_path eq '$$$PROTO.HIV\key2\key1' ok 162 - has 0 subkeys ok 163 - has 0 values ok 164 - get_timestamp == 1134490342 ok 165 - get_timestamp_as_string eq '2005-12-13T16:12:22Z' ok 166 - as_string eq '$$$PROTO.HIV\key2\key1 [2005-12-13T16:12:22Z]' ok 167 - key defined ok 168 - get_name eq 'key2' ok 169 - get_path eq '$$$PROTO.HIV\key2\key2' ok 170 - has 0 subkeys ok 171 - has 0 values ok 172 - get_timestamp == 1162637840 ok 173 - get_timestamp_as_string eq '2006-11-04T10:57:20Z' ok 174 - as_string eq '$$$PROTO.HIV\key2\key2 [2006-11-04T10:57:20Z]' ok 175 - key defined ok 176 - get_name eq 'key3' ok 177 - get_path eq '$$$PROTO.HIV\key2\key3' ok 178 - has 0 subkeys ok 179 - has 0 values ok 180 - get_timestamp == 1190785338 ok 181 - get_timestamp_as_string eq '2007-09-26T05:42:18Z' ok 182 - as_string eq '$$$PROTO.HIV\key2\key3 [2007-09-26T05:42:18Z]' ok 183 - key defined ok 184 - get_name eq 'key4' ok 185 - get_path eq '$$$PROTO.HIV\key2\key4' ok 186 - has 0 subkeys ok 187 - has 0 values ok 188 - get_timestamp == 1218932835 ok 189 - get_timestamp_as_string eq '2008-08-17T00:27:15Z' ok 190 - as_string eq '$$$PROTO.HIV\key2\key4 [2008-08-17T00:27:15Z]' ok 191 - key defined ok 192 - get_name eq 'key5' ok 193 - get_path eq '$$$PROTO.HIV\key2\key5' ok 194 - has 0 subkeys ok 195 - has 0 values ok 196 - get_timestamp == 1247080333 ok 197 - get_timestamp_as_string eq '2009-07-08T19:12:13Z' ok 198 - as_string eq '$$$PROTO.HIV\key2\key5 [2009-07-08T19:12:13Z]' ok 199 - key defined ok 200 - get_name eq 'key6' ok 201 - get_path eq '$$$PROTO.HIV\key2\key6' ok 202 - has 0 subkeys ok 203 - has 0 values ok 204 - get_timestamp == 1275227831 ok 205 - get_timestamp_as_string eq '2010-05-30T13:57:11Z' ok 206 - as_string eq '$$$PROTO.HIV\key2\key6 [2010-05-30T13:57:11Z]' ok 207 - key defined ok 208 - get_name eq '' ok 209 - get_path eq '$$$PROTO.HIV\' ok 210 - has 1 subkeys ok 211 - has 0 values ok 212 - get_timestamp == 1303375328 ok 213 - get_timestamp_as_string eq '2011-04-21T08:42:08Z' ok 214 - as_string eq '$$$PROTO.HIV\ [2011-04-21T08:42:08Z]' ok 215 - key defined ok 216 - get_name eq '0' ok 217 - get_path eq '$$$PROTO.HIV\\0' ok 218 - has 0 subkeys ok 219 - has 0 values ok 220 - get_timestamp == 1331522826 ok 221 - get_timestamp_as_string eq '2012-03-12T03:27:06Z' ok 222 - as_string eq '$$$PROTO.HIV\\0 [2012-03-12T03:27:06Z]' 1..222 ok t/misc.........ok 1 - 0000000000000000 - convert_filetime_to_epoch_time undefined ok 2 - 0000000000000000 - and iso8601 eq '(undefined)' ok 3 - 80e9a5d4deb19d01 - convert_filetime_to_epoch_time undefined ok 4 - 80e9a5d4deb19d01 - and iso8601 eq '(undefined)' ok 5 - 00803ed5deb19d01 - convert_filetime_to_epoch_time == 0 ok 6 - 00803ed5deb19d01 - and iso8601 eq '1970-01-01T00:00:00Z' ok 7 - 8016d7d5deb19d01 - convert_filetime_to_epoch_time == 1 ok 8 - 8016d7d5deb19d01 - and iso8601 eq '1970-01-01T00:00:01Z' ok 9 - 000000000000c101 - convert_filetime_to_epoch_time == 993752854 ok 10 - 000000000000c101 - and iso8601 eq '2001-06-28T18:27:34Z' ok 11 - 000000000000c201 - convert_filetime_to_epoch_time == 1021900351 ok 12 - 000000000000c201 - and iso8601 eq '2002-05-20T13:12:31Z' ok 13 - 000000000000c301 - convert_filetime_to_epoch_time == 1050047849 ok 14 - 000000000000c301 - and iso8601 eq '2003-04-11T07:57:29Z' ok 15 - 000000000000c401 - convert_filetime_to_epoch_time == 1078195347 ok 16 - 000000000000c401 - and iso8601 eq '2004-03-02T02:42:27Z' ok 17 - 000000000000c501 - convert_filetime_to_epoch_time == 1106342844 ok 18 - 000000000000c501 - and iso8601 eq '2005-01-21T21:27:24Z' ok 19 - 000000000000c601 - convert_filetime_to_epoch_time == 1134490342 ok 20 - 000000000000c601 - and iso8601 eq '2005-12-13T16:12:22Z' ok 21 - 000000000000c701 - convert_filetime_to_epoch_time == 1162637840 ok 22 - 000000000000c701 - and iso8601 eq '2006-11-04T10:57:20Z' ok 23 - 000000000000c801 - convert_filetime_to_epoch_time == 1190785338 ok 24 - 000000000000c801 - and iso8601 eq '2007-09-26T05:42:18Z' ok 25 - 000000000000c901 - convert_filetime_to_epoch_time == 1218932835 ok 26 - 000000000000c901 - and iso8601 eq '2008-08-17T00:27:15Z' ok 27 - 000000000000ca01 - convert_filetime_to_epoch_time == 1247080333 ok 28 - 000000000000ca01 - and iso8601 eq '2009-07-08T19:12:13Z' ok 29 - 000000000000cb01 - convert_filetime_to_epoch_time == 1275227831 ok 30 - 000000000000cb01 - and iso8601 eq '2010-05-30T13:57:11Z' ok 31 - 000000000000cc01 - convert_filetime_to_epoch_time == 1303375328 ok 32 - 000000000000cc01 - and iso8601 eq '2011-04-21T08:42:08Z' ok 33 - 000000000000cd01 - convert_filetime_to_epoch_time == 1331522826 ok 34 - 000000000000cd01 - and iso8601 eq '2012-03-12T03:27:06Z' ok 35 - 000000000000ce01 - convert_filetime_to_epoch_time == 1359670324 ok 36 - 000000000000ce01 - and iso8601 eq '2013-01-31T22:12:04Z' ok 37 - 000000000000cf01 - convert_filetime_to_epoch_time == 1387817821 ok 38 - 000000000000cf01 - and iso8601 eq '2013-12-23T16:57:01Z' ok 39 - 00530dd41efde901 - convert_filetime_to_epoch_time == 2147483646 ok 40 - 00530dd41efde901 - and iso8601 eq '2038-01-19T03:14:06Z' ok 41 - 80e9a5d41efde901 - convert_filetime_to_epoch_time == 2147483647 ok 42 - 80e9a5d41efde901 - and iso8601 eq '2038-01-19T03:14:07Z' ok 43 - 00803ed51efde901 - convert_filetime_to_epoch_time == 2147483648 ok 44 - 00803ed51efde901 - and iso8601 eq '(undefined)' ok 45 - 0000000000000002 - convert_filetime_to_epoch_time == 2767045207 ok 46 - 0000000000000002 - and iso8601 eq '(undefined)' ok 47 - no hexdump ok 48 - empty hexdump ok 49 - undef hexdump ok 50 - small hexdump ok 51 - large hexdump 1..51 ok t/use..........ok 1 - use Parse::Win32Registry; ok 2 - correct version ok 3 - Parse::Win32Registry->can('new') ok 4 - Parse::Win32Registry->can('convert_filetime_to_epoch_time') ok 5 - Parse::Win32Registry->can('iso8601') ok 6 - Parse::Win32Registry->can('hexdump') 1..6 ok t/values.......ok 1 - registry defined ok 2 - The object isa Parse::Win32Registry::Win95::File ok 3 - root key defined ok 4 - The object isa Parse::Win32Registry::Win95::Key ok 5 - root key name ok 6 - key1 defined ok 7 - key1 name ok 8 - value defined ok 9 - get_name eq "sz1" ok 10 - get_type == 1 ok 11 - get_type_as_string eq 'REG_SZ' ok 12 - get_data eq "www.perl.com" ok 13 - get_data_as_string eq "www.perl.com" ok 14 - as_string eq "sz1 (REG_SZ) = www.perl.com" ok 15 - value defined ok 16 - get_name eq "sz2" ok 17 - get_type == 1 ok 18 - get_type_as_string eq 'REG_SZ' ok 19 - get_data eq "www.perl.com" ok 20 - get_data_as_string eq "www.perl.com" ok 21 - as_string eq "sz2 (REG_SZ) = www.perl.com" ok 22 - value defined ok 23 - get_name eq "sz3" ok 24 - get_type == 1 ok 25 - get_type_as_string eq 'REG_SZ' ok 26 - get_data eq "" ok 27 - get_data_as_string eq "(no data)" ok 28 - as_string eq "sz3 (REG_SZ) = (no data)" ok 29 - value defined ok 30 - get_name eq "sz4" ok 31 - get_type == 1 ok 32 - get_type_as_string eq 'REG_SZ' ok 33 - get_data eq "" ok 34 - get_data_as_string eq "(no data)" ok 35 - as_string eq "sz4 (REG_SZ) = (no data)" ok 36 - value defined ok 37 - get_name eq "expand_sz1" ok 38 - get_type == 2 ok 39 - get_type_as_string eq 'REG_EXPAND_SZ' ok 40 - get_data eq "www.perl.com" ok 41 - get_data_as_string eq "www.perl.com" ok 42 - as_string eq "expand_sz1 (REG_EXPAND_SZ) = www.perl.com" ok 43 - value defined ok 44 - get_name eq "expand_sz2" ok 45 - get_type == 2 ok 46 - get_type_as_string eq 'REG_EXPAND_SZ' ok 47 - get_data eq "www.perl.com" ok 48 - get_data_as_string eq "www.perl.com" ok 49 - as_string eq "expand_sz2 (REG_EXPAND_SZ) = www.perl.com" ok 50 - value defined ok 51 - get_name eq "expand_sz3" ok 52 - get_type == 2 ok 53 - get_type_as_string eq 'REG_EXPAND_SZ' ok 54 - get_data eq "" ok 55 - get_data_as_string eq "(no data)" ok 56 - as_string eq "expand_sz3 (REG_EXPAND_SZ) = (no data)" ok 57 - value defined ok 58 - get_name eq "expand_sz4" ok 59 - get_type == 2 ok 60 - get_type_as_string eq 'REG_EXPAND_SZ' ok 61 - get_data eq "" ok 62 - get_data_as_string eq "(no data)" ok 63 - as_string eq "expand_sz4 (REG_EXPAND_SZ) = (no data)" ok 64 - value defined ok 65 - get_name eq "binary1" ok 66 - get_type == 3 ok 67 - get_type_as_string eq 'REG_BINARY' ok 68 - get_data eq "\1\2\3\4\5\6\a\b" ok 69 - get_data_as_string eq "01 02 03 04 05 06 07 08" ok 70 - as_string eq "binary1 (REG_BINARY) = 01 02 03 04 05 06 07 08" ok 71 - value defined ok 72 - get_name eq "binary2" ok 73 - get_type == 3 ok 74 - get_type_as_string eq 'REG_BINARY' ok 75 - get_data eq "" ok 76 - get_data_as_string eq "(no data)" ok 77 - as_string eq "binary2 (REG_BINARY) = (no data)" ok 78 - value defined ok 79 - get_name eq "dword1" ok 80 - get_type == 4 ok 81 - get_type_as_string eq 'REG_DWORD' ok 82 - get_data == 67305985 ok 83 - get_data_as_string eq "0x04030201 (67305985)" ok 84 - as_string eq "dword1 (REG_DWORD) = 0x04030201 (67305985)" ok 85 - value defined ok 86 - get_name eq "dword2" ok 87 - get_type == 4 ok 88 - get_type_as_string eq 'REG_DWORD' ok 89 - get_data undefined ok 90 - get_data_as_string eq "(invalid data)" ok 91 - as_string eq "dword2 (REG_DWORD) = (invalid data)" ok 92 - value defined ok 93 - get_name eq "dword3" ok 94 - get_type == 4 ok 95 - get_type_as_string eq 'REG_DWORD' ok 96 - get_data undefined ok 97 - get_data_as_string eq "(invalid data)" ok 98 - as_string eq "dword3 (REG_DWORD) = (invalid data)" ok 99 - value defined ok 100 - get_name eq "dword4" ok 101 - get_type == 4 ok 102 - get_type_as_string eq 'REG_DWORD' ok 103 - get_data undefined ok 104 - get_data_as_string eq "(invalid data)" ok 105 - as_string eq "dword4 (REG_DWORD) = (invalid data)" ok 106 - value defined ok 107 - get_name eq "dword5" ok 108 - get_type == 4 ok 109 - get_type_as_string eq 'REG_DWORD' ok 110 - get_data == 0 ok 111 - get_data_as_string eq "0x00000000 (0)" ok 112 - as_string eq "dword5 (REG_DWORD) = 0x00000000 (0)" ok 113 - value defined ok 114 - get_name eq "dword6" ok 115 - get_type == 4 ok 116 - get_type_as_string eq 'REG_DWORD' ok 117 - get_data == 2147483647 ok 118 - get_data_as_string eq "0x7fffffff (2147483647)" ok 119 - as_string eq "dword6 (REG_DWORD) = 0x7fffffff (2147483647)" ok 120 - value defined ok 121 - get_name eq "dword7" ok 122 - get_type == 4 ok 123 - get_type_as_string eq 'REG_DWORD' ok 124 - get_data == 2147483648 ok 125 - get_data_as_string eq "0x80000000 (2147483648)" ok 126 - as_string eq "dword7 (REG_DWORD) = 0x80000000 (2147483648)" ok 127 - value defined ok 128 - get_name eq "dword8" ok 129 - get_type == 4 ok 130 - get_type_as_string eq 'REG_DWORD' ok 131 - get_data == 4294967295 ok 132 - get_data_as_string eq "0xffffffff (4294967295)" ok 133 - as_string eq "dword8 (REG_DWORD) = 0xffffffff (4294967295)" ok 134 - value defined ok 135 - get_name eq "multi_sz1" ok 136 - get_type == 7 ok 137 - get_type_as_string eq 'REG_MULTI_SZ' ok 138 - get_data eq "String1\0String2\0String3\0\0" ok 139 - get_data_as_string eq "[0] String1 [1] String2 [2] String3" ok 140 - as_string eq "multi_sz1 (REG_MULTI_SZ) = [0] String1 [1] String2 [2] String3" ok 141 - value defined ok 142 - get_name eq "multi_sz2" ok 143 - get_type == 7 ok 144 - get_type_as_string eq 'REG_MULTI_SZ' ok 145 - get_data eq "String1\0\0" ok 146 - get_data_as_string eq "[0] String1" ok 147 - as_string eq "multi_sz2 (REG_MULTI_SZ) = [0] String1" ok 148 - value defined ok 149 - get_name eq "multi_sz3" ok 150 - get_type == 7 ok 151 - get_type_as_string eq 'REG_MULTI_SZ' ok 152 - get_data eq "String1\0" ok 153 - get_data_as_string eq "[0] String1" ok 154 - as_string eq "multi_sz3 (REG_MULTI_SZ) = [0] String1" ok 155 - value defined ok 156 - get_name eq "multi_sz4" ok 157 - get_type == 7 ok 158 - get_type_as_string eq 'REG_MULTI_SZ' ok 159 - get_data eq "String1" ok 160 - get_data_as_string eq "[0] String1" ok 161 - as_string eq "multi_sz4 (REG_MULTI_SZ) = [0] String1" ok 162 - value defined ok 163 - get_name eq "multi_sz5" ok 164 - get_type == 7 ok 165 - get_type_as_string eq 'REG_MULTI_SZ' ok 166 - get_data eq "\0\0" ok 167 - get_data_as_string eq "" ok 168 - as_string eq "multi_sz5 (REG_MULTI_SZ) = " ok 169 - value defined ok 170 - get_name eq "multi_sz6" ok 171 - get_type == 7 ok 172 - get_type_as_string eq 'REG_MULTI_SZ' ok 173 - get_data eq "\0" ok 174 - get_data_as_string eq "" ok 175 - as_string eq "multi_sz6 (REG_MULTI_SZ) = " ok 176 - value defined ok 177 - get_name eq "multi_sz7" ok 178 - get_type == 7 ok 179 - get_type_as_string eq 'REG_MULTI_SZ' ok 180 - get_data eq "" ok 181 - get_data_as_string eq "(no data)" ok 182 - as_string eq "multi_sz7 (REG_MULTI_SZ) = (no data)" ok 183 - value defined ok 184 - get_name eq "" ok 185 - get_type == 1 ok 186 - get_type_as_string eq 'REG_SZ' ok 187 - get_data eq "www.perl.com" ok 188 - get_data_as_string eq "www.perl.com" ok 189 - as_string eq "(Default) (REG_SZ) = www.perl.com" ok 190 - value defined ok 191 - get_name eq 0 ok 192 - get_type == 1 ok 193 - get_type_as_string eq 'REG_SZ' ok 194 - get_data eq "www.perl.com" ok 195 - get_data_as_string eq "www.perl.com" ok 196 - as_string eq "0 (REG_SZ) = www.perl.com" ok 197 - The object isa Parse::Win32Registry::WinNT::File ok 198 - The object isa Parse::Win32Registry::WinNT::Key ok 199 - Root Key name ok 200 - key1 defined ok 201 - key1 name ok 202 - value defined ok 203 - get_name eq "sz1" ok 204 - get_type == 1 ok 205 - get_type_as_string eq 'REG_SZ' ok 206 - get_data eq "www.perl.com" ok 207 - get_data_as_string eq "www.perl.com" ok 208 - as_string eq "sz1 (REG_SZ) = www.perl.com" ok 209 - value defined ok 210 - get_name eq "sz2" ok 211 - get_type == 1 ok 212 - get_type_as_string eq 'REG_SZ' ok 213 - get_data eq "www.perl.com" ok 214 - get_data_as_string eq "www.perl.com" ok 215 - as_string eq "sz2 (REG_SZ) = www.perl.com" ok 216 - value defined ok 217 - get_name eq "sz3" ok 218 - get_type == 1 ok 219 - get_type_as_string eq 'REG_SZ' ok 220 - get_data eq 12 ok 221 - get_data_as_string eq 12 ok 222 - as_string eq "sz3 (REG_SZ) = 12" ok 223 - value defined ok 224 - get_name eq "sz4" ok 225 - get_type == 1 ok 226 - get_type_as_string eq 'REG_SZ' ok 227 - get_data eq 1 ok 228 - get_data_as_string eq 1 ok 229 - as_string eq "sz4 (REG_SZ) = 1" ok 230 - value defined ok 231 - get_name eq "sz5" ok 232 - get_type == 1 ok 233 - get_type_as_string eq 'REG_SZ' ok 234 - get_data eq "" ok 235 - get_data_as_string eq "(no data)" ok 236 - as_string eq "sz5 (REG_SZ) = (no data)" ok 237 - value defined ok 238 - get_name eq "sz6" ok 239 - get_type == 1 ok 240 - get_type_as_string eq 'REG_SZ' ok 241 - get_data eq "" ok 242 - get_data_as_string eq "(no data)" ok 243 - as_string eq "sz6 (REG_SZ) = (no data)" ok 244 - value defined ok 245 - get_name eq "sz7" ok 246 - get_type == 1 ok 247 - get_type_as_string eq 'REG_SZ' ok 248 - get_data eq "" ok 249 - get_data_as_string eq "(no data)" ok 250 - as_string eq "sz7 (REG_SZ) = (no data)" ok 251 - value defined ok 252 - get_name eq "sz8" ok 253 - get_type == 1 ok 254 - get_type_as_string eq 'REG_SZ' ok 255 - get_data eq "" ok 256 - get_data_as_string eq "(no data)" ok 257 - as_string eq "sz8 (REG_SZ) = (no data)" ok 258 - value defined ok 259 - get_name eq "expand_sz1" ok 260 - get_type == 2 ok 261 - get_type_as_string eq 'REG_EXPAND_SZ' ok 262 - get_data eq "www.perl.com" ok 263 - get_data_as_string eq "www.perl.com" ok 264 - as_string eq "expand_sz1 (REG_EXPAND_SZ) = www.perl.com" ok 265 - value defined ok 266 - get_name eq "expand_sz2" ok 267 - get_type == 2 ok 268 - get_type_as_string eq 'REG_EXPAND_SZ' ok 269 - get_data eq "www.perl.com" ok 270 - get_data_as_string eq "www.perl.com" ok 271 - as_string eq "expand_sz2 (REG_EXPAND_SZ) = www.perl.com" ok 272 - value defined ok 273 - get_name eq "expand_sz3" ok 274 - get_type == 2 ok 275 - get_type_as_string eq 'REG_EXPAND_SZ' ok 276 - get_data eq 12 ok 277 - get_data_as_string eq 12 ok 278 - as_string eq "expand_sz3 (REG_EXPAND_SZ) = 12" ok 279 - value defined ok 280 - get_name eq "expand_sz4" ok 281 - get_type == 2 ok 282 - get_type_as_string eq 'REG_EXPAND_SZ' ok 283 - get_data eq 1 ok 284 - get_data_as_string eq 1 ok 285 - as_string eq "expand_sz4 (REG_EXPAND_SZ) = 1" ok 286 - value defined ok 287 - get_name eq "expand_sz5" ok 288 - get_type == 2 ok 289 - get_type_as_string eq 'REG_EXPAND_SZ' ok 290 - get_data eq "" ok 291 - get_data_as_string eq "(no data)" ok 292 - as_string eq "expand_sz5 (REG_EXPAND_SZ) = (no data)" ok 293 - value defined ok 294 - get_name eq "expand_sz6" ok 295 - get_type == 2 ok 296 - get_type_as_string eq 'REG_EXPAND_SZ' ok 297 - get_data eq "" ok 298 - get_data_as_string eq "(no data)" ok 299 - as_string eq "expand_sz6 (REG_EXPAND_SZ) = (no data)" ok 300 - value defined ok 301 - get_name eq "expand_sz7" ok 302 - get_type == 2 ok 303 - get_type_as_string eq 'REG_EXPAND_SZ' ok 304 - get_data eq "" ok 305 - get_data_as_string eq "(no data)" ok 306 - as_string eq "expand_sz7 (REG_EXPAND_SZ) = (no data)" ok 307 - value defined ok 308 - get_name eq "expand_sz8" ok 309 - get_type == 2 ok 310 - get_type_as_string eq 'REG_EXPAND_SZ' ok 311 - get_data eq "" ok 312 - get_data_as_string eq "(no data)" ok 313 - as_string eq "expand_sz8 (REG_EXPAND_SZ) = (no data)" ok 314 - value defined ok 315 - get_name eq "binary1" ok 316 - get_type == 3 ok 317 - get_type_as_string eq 'REG_BINARY' ok 318 - get_data eq "\1\2\3\4\5\6\a\b" ok 319 - get_data_as_string eq "01 02 03 04 05 06 07 08" ok 320 - as_string eq "binary1 (REG_BINARY) = 01 02 03 04 05 06 07 08" ok 321 - value defined ok 322 - get_name eq "binary2" ok 323 - get_type == 3 ok 324 - get_type_as_string eq 'REG_BINARY' ok 325 - get_data eq "" ok 326 - get_data_as_string eq "(no data)" ok 327 - as_string eq "binary2 (REG_BINARY) = (no data)" ok 328 - value defined ok 329 - get_name eq "dword1" ok 330 - get_type == 4 ok 331 - get_type_as_string eq 'REG_DWORD' ok 332 - get_data == 1 ok 333 - get_data_as_string eq "0x00000001 (1)" ok 334 - as_string eq "dword1 (REG_DWORD) = 0x00000001 (1)" ok 335 - value defined ok 336 - get_name eq "dword3" ok 337 - get_type == 4 ok 338 - get_type_as_string eq 'REG_DWORD' ok 339 - get_data undefined ok 340 - get_data_as_string eq "(invalid data)" ok 341 - as_string eq "dword3 (REG_DWORD) = (invalid data)" ok 342 - value defined ok 343 - get_name eq "dword4" ok 344 - get_type == 4 ok 345 - get_type_as_string eq 'REG_DWORD' ok 346 - get_data undefined ok 347 - get_data_as_string eq "(invalid data)" ok 348 - as_string eq "dword4 (REG_DWORD) = (invalid data)" ok 349 - value defined ok 350 - get_name eq "dword5" ok 351 - get_type == 4 ok 352 - get_type_as_string eq 'REG_DWORD' ok 353 - get_data == 67305985 ok 354 - get_data_as_string eq "0x04030201 (67305985)" ok 355 - as_string eq "dword5 (REG_DWORD) = 0x04030201 (67305985)" ok 356 - value defined ok 357 - get_name eq "dword6" ok 358 - get_type == 4 ok 359 - get_type_as_string eq 'REG_DWORD' ok 360 - get_data undefined ok 361 - get_data_as_string eq "(invalid data)" ok 362 - as_string eq "dword6 (REG_DWORD) = (invalid data)" ok 363 - value defined ok 364 - get_name eq "dword7" ok 365 - get_type == 4 ok 366 - get_type_as_string eq 'REG_DWORD' ok 367 - get_data undefined ok 368 - get_data_as_string eq "(invalid data)" ok 369 - as_string eq "dword7 (REG_DWORD) = (invalid data)" ok 370 - value defined ok 371 - get_name eq "dword8" ok 372 - get_type == 4 ok 373 - get_type_as_string eq 'REG_DWORD' ok 374 - get_data undefined ok 375 - get_data_as_string eq "(invalid data)" ok 376 - as_string eq "dword8 (REG_DWORD) = (invalid data)" ok 377 - value defined ok 378 - get_name eq "dword9" ok 379 - get_type == 4 ok 380 - get_type_as_string eq 'REG_DWORD' ok 381 - get_data == 0 ok 382 - get_data_as_string eq "0x00000000 (0)" ok 383 - as_string eq "dword9 (REG_DWORD) = 0x00000000 (0)" ok 384 - value defined ok 385 - get_name eq "dword10" ok 386 - get_type == 4 ok 387 - get_type_as_string eq 'REG_DWORD' ok 388 - get_data == 2147483647 ok 389 - get_data_as_string eq "0x7fffffff (2147483647)" ok 390 - as_string eq "dword10 (REG_DWORD) = 0x7fffffff (2147483647)" ok 391 - value defined ok 392 - get_name eq "dword11" ok 393 - get_type == 4 ok 394 - get_type_as_string eq 'REG_DWORD' ok 395 - get_data == 2147483648 ok 396 - get_data_as_string eq "0x80000000 (2147483648)" ok 397 - as_string eq "dword11 (REG_DWORD) = 0x80000000 (2147483648)" ok 398 - value defined ok 399 - get_name eq "dword12" ok 400 - get_type == 4 ok 401 - get_type_as_string eq 'REG_DWORD' ok 402 - get_data == 4294967295 ok 403 - get_data_as_string eq "0xffffffff (4294967295)" ok 404 - as_string eq "dword12 (REG_DWORD) = 0xffffffff (4294967295)" ok 405 - value defined ok 406 - get_name eq "multi_sz1" ok 407 - get_type == 7 ok 408 - get_type_as_string eq 'REG_MULTI_SZ' ok 409 - get_data eq "String1\0String2\0String3\0\0" ok 410 - get_data_as_string eq "[0] String1 [1] String2 [2] String3" ok 411 - as_string eq "multi_sz1 (REG_MULTI_SZ) = [0] String1 [1] String2 [2] String3" ok 412 - value defined ok 413 - get_name eq "multi_sz2" ok 414 - get_type == 7 ok 415 - get_type_as_string eq 'REG_MULTI_SZ' ok 416 - get_data eq "String1\0\0" ok 417 - get_data_as_string eq "[0] String1" ok 418 - as_string eq "multi_sz2 (REG_MULTI_SZ) = [0] String1" ok 419 - value defined ok 420 - get_name eq "multi_sz3" ok 421 - get_type == 7 ok 422 - get_type_as_string eq 'REG_MULTI_SZ' ok 423 - get_data eq "String1\0" ok 424 - get_data_as_string eq "[0] String1" ok 425 - as_string eq "multi_sz3 (REG_MULTI_SZ) = [0] String1" ok 426 - value defined ok 427 - get_name eq "multi_sz4" ok 428 - get_type == 7 ok 429 - get_type_as_string eq 'REG_MULTI_SZ' ok 430 - get_data eq "String1" ok 431 - get_data_as_string eq "[0] String1" ok 432 - as_string eq "multi_sz4 (REG_MULTI_SZ) = [0] String1" ok 433 - value defined ok 434 - get_name eq "multi_sz5" ok 435 - get_type == 7 ok 436 - get_type_as_string eq 'REG_MULTI_SZ' ok 437 - get_data eq "\0\0" ok 438 - get_data_as_string eq "" ok 439 - as_string eq "multi_sz5 (REG_MULTI_SZ) = " ok 440 - value defined ok 441 - get_name eq "multi_sz6" ok 442 - get_type == 7 ok 443 - get_type_as_string eq 'REG_MULTI_SZ' ok 444 - get_data eq "\0" ok 445 - get_data_as_string eq "" ok 446 - as_string eq "multi_sz6 (REG_MULTI_SZ) = " ok 447 - value defined ok 448 - get_name eq "multi_sz7" ok 449 - get_type == 7 ok 450 - get_type_as_string eq 'REG_MULTI_SZ' ok 451 - get_data eq "" ok 452 - get_data_as_string eq "(no data)" ok 453 - as_string eq "multi_sz7 (REG_MULTI_SZ) = (no data)" ok 454 - value defined ok 455 - get_name eq "" ok 456 - get_type == 1 ok 457 - get_type_as_string eq 'REG_SZ' ok 458 - get_data eq "www.perl.com" ok 459 - get_data_as_string eq "www.perl.com" ok 460 - as_string eq "(Default) (REG_SZ) = www.perl.com" ok 461 - value defined ok 462 - get_name eq 0 ok 463 - get_type == 1 ok 464 - get_type_as_string eq 'REG_SZ' ok 465 - get_data eq "www.perl.com" ok 466 - get_data_as_string eq "www.perl.com" ok 467 - as_string eq "0 (REG_SZ) = www.perl.com" 1..467 ok All tests successful. Files=6, Tests=848, 2 wallclock secs ( 1.17 cusr + 0.27 csys = 1.44 CPU) Installing /Users/cpanrun/build/5.8.8/html/site/lib/Parse/Win32Registry.html Installing /Users/cpanrun/build/5.8.8/lib/site_perl/5.8.8/Parse/Win32Registry.pm Installing /Users/cpanrun/build/5.8.8/lib/site_perl/5.8.8/Parse/Win32Registry/Key.pm Installing /Users/cpanrun/build/5.8.8/lib/site_perl/5.8.8/Parse/Win32Registry/Value.pm Installing /Users/cpanrun/build/5.8.8/lib/site_perl/5.8.8/Parse/Win32Registry/Win95/File.pm Installing /Users/cpanrun/build/5.8.8/lib/site_perl/5.8.8/Parse/Win32Registry/Win95/Key.pm Installing /Users/cpanrun/build/5.8.8/lib/site_perl/5.8.8/Parse/Win32Registry/Win95/Value.pm Installing /Users/cpanrun/build/5.8.8/lib/site_perl/5.8.8/Parse/Win32Registry/WinNT/File.pm Installing /Users/cpanrun/build/5.8.8/lib/site_perl/5.8.8/Parse/Win32Registry/WinNT/Key.pm Installing /Users/cpanrun/build/5.8.8/lib/site_perl/5.8.8/Parse/Win32Registry/WinNT/Value.pm Installing /Users/cpanrun/build/5.8.8/man/man3/Parse::Win32Registry.3 Installing /Users/cpanrun/build/5.8.8/bin/regdiff.pl Installing /Users/cpanrun/build/5.8.8/bin/regdump.pl Installing /Users/cpanrun/build/5.8.8/bin/regfind.pl Appending installation info to /Users/cpanrun/build/5.8.8/lib/5.8.8/darwin-thread-multi-2level/perllocal.pod