1use strict; 2use warnings; 3use Test::More; 4 5use Params::Validate qw( validate SCALAR ); 6 7{ 8 my $p = { foo => 1 }; 9 10 val($p); 11 12 is_deeply( 13 $p, { foo => 1 }, 14 'validate does not alter hashref passed to val' 15 ); 16 17 val2($p); 18 19 is_deeply( 20 $p, { foo => 1 }, 21 'validate does not alter hashref passed to val, even with defaults being supplied' 22 ); 23} 24 25sub val { 26 validate( 27 @_, { 28 foo => { optional => 1 }, 29 bar => { optional => 1 }, 30 baz => { optional => 1 }, 31 buz => { optional => 1 }, 32 }, 33 ); 34 35 return; 36} 37 38sub val2 { 39 validate( 40 @_, { 41 foo => { optional => 1 }, 42 bar => { default => 42 }, 43 baz => { optional => 1 }, 44 buz => { optional => 1 }, 45 }, 46 ); 47 48 return; 49} 50 51done_testing(); 52