--- nfo/perl/libs/Hash/Merge.pm 2003/02/20 05:18:04 1.1 +++ nfo/perl/libs/Hash/Merge.pm 2003/02/20 05:53:44 1.2 @@ -65,7 +65,7 @@ use Exporter (); use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $CLONE_SUPPORT); - $VERSION = sprintf( "%d.%02d", q($Revision: 1.1 $) =~ /\s(\d+)\.(\d+)/ ); + $VERSION = sprintf( "%d.%02d", q($Revision: 1.2 $) =~ /\s(\d+)\.(\d+)/ ); @ISA = qw(Exporter); @EXPORT = qw(); @EXPORT_OK = qw( merge _hashify _merge_hashes ); @@ -145,6 +145,7 @@ my $merge_matrix = \%{ $behaviors{ $merge_behavior } }; my $clone_behavior = 1; +my $mixin_behavior = 0; sub set_behavior { my $value = uc(shift); @@ -183,6 +184,11 @@ return $clone_behavior; } +sub set_mixin_behavior { + my $temp = shift; + $mixin_behavior = ( $temp ) ? 1 : 0; +} + sub merge { my ( $left, $right ) = ( shift, shift ); @@ -231,7 +237,7 @@ my %newhash; foreach my $leftkey ( keys %$left ) { if ( exists $right->{ $leftkey } ) { - $newhash{ $leftkey } = + ( $mixin_behavior ) ? $left->{ $leftkey } : $newhash{ $leftkey } = merge ( $left->{ $leftkey }, $right->{ $leftkey } ) } else { $newhash{ $leftkey } = @@ -510,9 +516,12 @@ =head1 HISTORY $Log: Merge.pm,v $ + Revision 1.2 2003/02/20 05:53:44 joko + + sub set_mixin_behavior + Revision 1.1 2003/02/20 05:18:04 joko + initial commit, to-be-enhanced - + Revision 0.07 2002/02/19 00:21:27 mneylon Fixed problem with ActiveState Perl's Clone.pm implementation. Fixed typo in POD.