#!/usr/local/bin/perl use lib qw ( ./t ); use test_v1; package X; use Class::MethodMaker get_set => [qw/ a b /], copy => 'copy', deep_copy => 'deeply'; sub new { bless {}, shift; } package main; Class::MethodMaker->VERSION eq '2.08' || Class::MethodMaker->VERSION >= 2.00 or die "Wrong C::MM: ", Class::MethodMaker->VERSION, "\n"; my $o = new X; # 1--8 TEST { 1 }; TEST { $o->a ('foo') eq 'foo' }; TEST { $c = $o->copy; }; TEST { $c->a eq 'foo' }; TEST { $c->a ('bar') eq 'bar' }; TEST { $o->a eq 'foo' }; TEST { $o->a ('baz') eq 'baz' }; TEST { $c->a eq 'bar' }; # 9--: deep copying my $o2 = new X; my $o3; TEST { $o2->a($o) }; TEST { $o2->a == $o }; TEST { $o2->a->a eq 'baz' }; TEST { $o3 = $o2->deeply; }; TEST { $o3->a->a eq 'baz' }; TEST { $o->a('bar') }; TEST { $o->a eq 'bar' }; TEST { $o2->a->a eq 'bar' }; TEST { $o3->a->a eq 'baz' }; exit 0;