Checking if your kit is complete... Looks good Writing Makefile for Class::MakeMethods::Emulator Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. cp Emulator/Changes.pod blib\lib\Class\MakeMethods\Emulator\Changes.pod cp Emulator/Singleton.pm blib\lib\Class\MakeMethods\Emulator\Singleton.pm cp Emulator/MethodMaker.pm blib\lib\Class\MakeMethods\Emulator\MethodMaker.pm cp Emulator/Inheritable.pm blib\lib\Class\MakeMethods\Emulator\Inheritable.pm cp Emulator.pm blib\lib\Class\MakeMethods\Emulator.pm cp Emulator/AccessorFast.pm blib\lib\Class\MakeMethods\Emulator\AccessorFast.pm cp Emulator/Struct.pm blib\lib\Class\MakeMethods\Emulator\Struct.pm cp Emulator/ToDo.pod blib\lib\Class\MakeMethods\Emulator\ToDo.pod Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. C:\cpanrun\build\5-10-0\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(1, 'blib\lib', 'blib\arch')" t/*.t t/Class_Accessor_Fast............1..20 ok 1 - compile() ok 2 - accessor get/set ok 3 - accessor read-only ok 4 - accessor read-only: write protection ok 5 - accessor write-only ok 6 - accessor write-only: read protection ok 7 - accessor alias ok 8 ok 9 ok 10 - bad accessor() ok 11 - accessor get in list context ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok t/Class_Inheritable..............1..12 ok 1 - compile ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok t/Class_Inheritable_trans........1..12 ok 1 - compile ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok t/Class_Singleton................1..22 ok 1 Class::Singleton instance 1: Class::MakeMethods::Emulator::Singleton=HASH(0x1b51f8c) ok 2 Class::Singleton instance 2: Class::MakeMethods::Emulator::Singleton=HASH(0x1b51f8c) ok 3 Class::Singleton instances are identical ok 4 DerivedSingleton instance 1: DerivedSingleton=HASH(0x1b5201c) ok 5 DerivedSingleton instance 2: DerivedSingleton=HASH(0x1b5201c) ok 6 DerivedSingleton instances are identical ok 7 AnotherSingleton instance 1: AnotherSingleton=HASH(0x1b5209c) ok 8 AnotherSingleton instance 2: AnotherSingleton=HASH(0x1b5209c) ok 9 AnotherSingleton instances are identical ok 10 Class::Singleton and DerviedSingleton are different ok 11 Class::Singleton and AnotherSingleton are different ok 12 DerivedSingleton and AnotherSingleton are different ok 13 ListSingleton #1 is defined ok 14 ListSingleton #2 is defined ok 15 ListSingleton #1 and #2 correctly reference the same list ok 16 ListSingleton correctly contains a list reference ok 17 ConfigSingleton #1 is defined ok 18 ConfigSingleton #2 is defined ok 19 ConfigSingleton #1 and #2 correctly reference the same object ok 20 ConfigSingleton #1 correctly has 3 keys ok 21 ConfigSingleton #2 correctly has 3 keys ok 22 ok t/Class_Singleton_transparent....1..22 ok 1 Class::Singleton instance 1: Class::MakeMethods::Emulator::Singleton=HASH(0x1b5232c) ok 2 Class::Singleton instance 2: Class::MakeMethods::Emulator::Singleton=HASH(0x1b5232c) ok 3 Class::Singleton instances are identical ok 4 DerivedSingleton instance 1: DerivedSingleton=HASH(0x1b523ac) ok 5 DerivedSingleton instance 2: DerivedSingleton=HASH(0x1b523ac) ok 6 DerivedSingleton instances are identical ok 7 AnotherSingleton instance 1: AnotherSingleton=HASH(0x1b5242c) ok 8 AnotherSingleton instance 2: AnotherSingleton=HASH(0x1b5242c) ok 9 AnotherSingleton instances are identical ok 10 Class::Singleton and DerviedSingleton are different ok 11 Class::Singleton and AnotherSingleton are different ok 12 DerivedSingleton and AnotherSingleton are different ok 13 ListSingleton #1 is defined ok 14 ListSingleton #2 is defined ok 15 ListSingleton #1 and #2 correctly reference the same list ok 16 ListSingleton correctly contains a list reference ok 17 ConfigSingleton #1 is defined ok 18 ConfigSingleton #2 is defined ok 19 ConfigSingleton #1 and #2 correctly reference the same object ok 20 ConfigSingleton #1 correctly has 3 keys ok 21 ConfigSingleton #2 correctly has 3 keys ok 22 ok t/Class_Struct...................1..8 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok t/Class_Struct_compare...........1..44 # Running under perl version 5.010000 for MSWin32 # Win32::BuildNumber 1001 # Current time local: Thu Feb 28 18:29:06 2008 # Current time GMT: Fri Feb 29 02:29:06 2008 # Using Test.pm version 1.25 { package MyStructArray; use Carp; sub new { my ($class, %init) = @_; $class = __PACKAGE__ unless @_; my($r) = []; $r->[0] = defined($init{'s'}) ? $init{'s'} : undef; # s croak 'Initializer for a must be array reference' if defined($init{'a'}) && ref($init{'a'}) ne 'ARRAY'; $r->[1] = defined($init{'a'}) ? $init{'a'} : []; # a croak 'Initializer for h must be hash reference' if defined($init{'h'}) && ref($init{'h'}) ne 'HASH'; $r->[2] = defined($init{'h'}) ? $init{'h'} : {}; # h if (defined($init{'c'})) { if (ref $init{'c'} eq 'HASH') { $r->[3] = My_Other_Class->new(%{$init{'c'}}) } # c elsif (UNIVERSAL::isa($init{'c'}, 'My_Other_Class')) { $r->[3] = $init{'c'} } # c else { croak 'Initializer for c must be hash or My_Other_Class reference' } } bless $r, $class; } sub s { my $r = shift; croak 'Too many args to s' if @_ > 1; @_ ? ($r->[0] = shift) : $r->[0]; } sub a { my $r = shift; my $i; @_ ? ($i = shift) : return $r->[1]; if (ref($i) eq 'ARRAY' && !@_) { $r->[1] = $i; return $r } croak 'Too many args to a' if @_ > 1; @_ ? ($r->[1]->[$i] = shift) : $r->[1]->[$i]; } sub h { my $r = shift; my $i; @_ ? ($i = shift) : return $r->[2]; if (ref($i) eq 'HASH' && !@_) { $r->[2] = $i; return $r } croak 'Too many args to h' if @_ > 1; @_ ? ($r->[2]->{$i} = shift) : $r->[2]->{$i}; } sub c { my $r = shift; croak 'c argument is wrong class' if @_ && ! UNIVERSAL::isa($_[0], 'My_Other_Class'); croak 'Too many args to c' if @_ > 1; @_ ? ($r->[3] = shift) : $r->[3]; } } 1; { package MyStructHash; use Carp; sub new { my ($class, %init) = @_; $class = __PACKAGE__ unless @_; my($r) = {}; if (defined($init{'c'})) { if (ref $init{'c'} eq 'HASH') { $r->{'MyStructHash::c'} = My_Other_Class->new(%{$init{'c'}}) } elsif (UNIVERSAL::isa($init{'c'}, 'My_Other_Class')) { $r->{'MyStructHash::c'} = $init{'c'} } else { croak 'Initializer for c must be hash or My_Other_Class reference' } } croak 'Initializer for h must be hash reference' if defined($init{'h'}) && ref($init{'h'}) ne 'HASH'; $r->{'MyStructHash::h'} = defined($init{'h'}) ? $init{'h'} : {}; croak 'Initializer for a must be array reference' if defined($init{'a'}) && ref($init{'a'}) ne 'ARRAY'; $r->{'MyStructHash::a'} = defined($init{'a'}) ? $init{'a'} : []; $r->{'MyStructHash::s'} = defined($init{'s'}) ? $init{'s'} : undef; bless $r, $class; } sub c { my $r = shift; croak 'c argument is wrong class' if @_ && ! UNIVERSAL::isa($_[0], 'My_Other_Class'); croak 'Too many args to c' if @_ > 1; @_ ? ($r->{'MyStructHash::c'} = shift) : $r->{'MyStructHash::c'}; } sub h { my $r = shift; my $i; @_ ? ($i = shift) : return $r->{'MyStructHash::h'}; if (ref($i) eq 'HASH' && !@_) { $r->{'MyStructHash::h'} = $i; return $r } croak 'Too many args to h' if @_ > 1; @_ ? ($r->{'MyStructHash::h'}->{$i} = shift) : $r->{'MyStructHash::h'}->{$i}; } sub a { my $r = shift; my $i; @_ ? ($i = shift) : return $r->{'MyStructHash::a'}; if (ref($i) eq 'ARRAY' && !@_) { $r->{'MyStructHash::a'} = $i; return $r } croak 'Too many args to a' if @_ > 1; @_ ? ($r->{'MyStructHash::a'}->[$i] = shift) : $r->{'MyStructHash::a'}->[$i]; } sub s { my $r = shift; croak 'Too many args to s' if @_ > 1; @_ ? ($r->{'MyStructHash::s'} = shift) : $r->{'MyStructHash::s'}; } } 1; ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 ok 25 ok 26 ok 27 ok 28 ok 29 ok 30 ok 31 ok 32 ok 33 ok 34 ok 35 ok 36 ok 37 ok 38 ok 39 ok 40 ok 41 ok 42 ok 43 ok 44 ok t/MethodMaker_abstract...........1..2 ok 1 ok 2 ok t/MethodMaker_boolean.092........1..17 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok t/MethodMaker_boolean............1..19 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok t/MethodMaker_code...............1..7 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok t/MethodMaker_copy...............1..8 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok t/MethodMaker_counter............1..6 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok t/MethodMaker_get_concat.092.....1..8 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok t/MethodMaker_get_concat.........1..13 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok t/MethodMaker_get_set.092........1..6 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok t/MethodMaker_get_set............1..22 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok t/MethodMaker_grouped_fields.....1..16 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok t/MethodMaker_hash.092...........1..21 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok t/MethodMaker_hash...............1..25 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 ok 25 ok t/MethodMaker_hash_of_lists......1..43 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 ok 25 ok 26 ok 27 ok 28 ok 29 ok 30 ok 31 ok 32 ok 33 ok 34 ok 35 ok 36 ok 37 ok 38 ok 39 ok 40 ok 41 ok 42 ok 43 ok t/MethodMaker_key_attrib.........1..17 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok t/MethodMaker_key_with_create....1..18 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok t/MethodMaker_list.092...........1..12 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok t/MethodMaker_list...............1..20 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok t/MethodMaker_listed_attrib......1..15 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok t/MethodMaker_method.............1..7 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok t/MethodMaker_new.092............1..13 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok t/MethodMaker_new................1..19 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok t/MethodMaker_object.092.........1..11 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok t/MethodMaker_object.............1..11 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok t/MethodMaker_object_list........1..17 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok t/MethodMaker_static_get_set.....1..22 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok t/MethodMaker_static_hash.092....1..22 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok t/MethodMaker_static_hash........1..17 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok t/MethodMaker_struct.............1..15 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 a b c d e ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok t/MethodMaker_sugar.092..........1..7 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok t/MethodMaker_tie_hash...........1..14 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok All tests successful. Files=38, Tests=610, 4 wallclock secs ( 0.00 cusr + 0.00 csys = 0.00 CPU) Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. Installing C:\cpanrun\build\5-10-0\html\site\lib\Class\MakeMethods\Emulator.html Installing C:\cpanrun\build\5-10-0\html\site\lib\Class\MakeMethods\Emulator\AccessorFast.html Installing C:\cpanrun\build\5-10-0\html\site\lib\Class\MakeMethods\Emulator\Changes.html Installing C:\cpanrun\build\5-10-0\html\site\lib\Class\MakeMethods\Emulator\Inheritable.html Installing C:\cpanrun\build\5-10-0\html\site\lib\Class\MakeMethods\Emulator\MethodMaker.html Installing C:\cpanrun\build\5-10-0\html\site\lib\Class\MakeMethods\Emulator\Singleton.html Installing C:\cpanrun\build\5-10-0\html\site\lib\Class\MakeMethods\Emulator\Struct.html Installing C:\cpanrun\build\5-10-0\html\site\lib\Class\MakeMethods\Emulator\ToDo.html Installing C:\cpanrun\build\5-10-0\site\lib\Class\MakeMethods\Emulator.pm Installing C:\cpanrun\build\5-10-0\site\lib\Class\MakeMethods\Emulator\AccessorFast.pm Installing C:\cpanrun\build\5-10-0\site\lib\Class\MakeMethods\Emulator\Changes.pod Installing C:\cpanrun\build\5-10-0\site\lib\Class\MakeMethods\Emulator\Inheritable.pm Installing C:\cpanrun\build\5-10-0\site\lib\Class\MakeMethods\Emulator\MethodMaker.pm Installing C:\cpanrun\build\5-10-0\site\lib\Class\MakeMethods\Emulator\Singleton.pm Installing C:\cpanrun\build\5-10-0\site\lib\Class\MakeMethods\Emulator\Struct.pm Installing C:\cpanrun\build\5-10-0\site\lib\Class\MakeMethods\Emulator\ToDo.pod Appending installation info to C:\cpanrun\build\5-10-0\lib/perllocal.pod