#!/usr/bin/perl use strict; use warnings; use 5.008; # CLONE only supported in Perl > 5.8 use threads; use Test::More tests => 7; require_ok( "SafeObject" ); my $safe_obj = SafeObject->new; isa_ok( $safe_obj, "SafeObject" ); is( $safe_obj->name( "Charlie" ), "Charlie", "mutator returns value" ); is( $safe_obj->name() , "Charlie", "accessor returns value" ); my $thr = threads->new( sub { is( $safe_obj->name( ), "Charlie", "got right name in thread"); is( $safe_obj->name( "Fred" ), "Fred" , "changed name in thread" ); } ); $thr->join; is( $safe_obj->name(), "Charlie", "main thread still has original name" );