#!perl -T # # $Id: 04-dlock.t,v 0.1 2008/06/27 19:11:42 dankogai Exp $ # use strict; use warnings; use Data::Lock qw/dlock dunlock/; #use Test::More 'no_plan'; use Test::More tests => 10; { dlock( my $a = [ 0, 1, 2, 3 ] ); is_deeply [ 0, 1, 2, 3 ], $a, '$a => [0,1,2,3]'; eval { shift @$a }; ok $@, $@; eval { $a->[0]-- }; ok $@, $@; dunlock $a; eval { $a->[0]-- }; ok !$@, '$a->[0]--'; is_deeply [ -1, 1, 2, 3 ], $a, '$a => [-1,1,2,3]'; } { dlock( my $h = { one => 1, two => 2 } ); is_deeply { one => 1, two => 2 }, $h, '$h => {one=>1, two=>2}'; eval { $h = {} }; ok $@, $@; eval { $h->{one}-- }; ok $@, $@; dunlock $h; eval { $h->{one}-- }; ok !$@, '$h->{one}--'; is_deeply { one => 0, two => 2 }, $h, '$h => {one=>0, two=>2}'; } __END__ #SCALAR ARRAY HASH #CODE #REF #GLOB #LVALUE #FORMAT #IO #VSTRING #Regexp __END__ #SCALAR ARRAY HASH #CODE #REF #GLOB #LVALUE #FORMAT #IO #VSTRING #Regexp