145 |
my $merge_matrix = \%{ $behaviors{ $merge_behavior } }; |
my $merge_matrix = \%{ $behaviors{ $merge_behavior } }; |
146 |
|
|
147 |
my $clone_behavior = 1; |
my $clone_behavior = 1; |
148 |
|
my $mixin_behavior = 0; |
149 |
|
|
150 |
sub set_behavior { |
sub set_behavior { |
151 |
my $value = uc(shift); |
my $value = uc(shift); |
184 |
return $clone_behavior; |
return $clone_behavior; |
185 |
} |
} |
186 |
|
|
187 |
|
sub set_mixin_behavior { |
188 |
|
my $temp = shift; |
189 |
|
$mixin_behavior = ( $temp ) ? 1 : 0; |
190 |
|
} |
191 |
|
|
192 |
sub merge { |
sub merge { |
193 |
my ( $left, $right ) = ( shift, shift ); |
my ( $left, $right ) = ( shift, shift ); |
194 |
|
|
237 |
my %newhash; |
my %newhash; |
238 |
foreach my $leftkey ( keys %$left ) { |
foreach my $leftkey ( keys %$left ) { |
239 |
if ( exists $right->{ $leftkey } ) { |
if ( exists $right->{ $leftkey } ) { |
240 |
$newhash{ $leftkey } = |
( $mixin_behavior ) ? $left->{ $leftkey } : $newhash{ $leftkey } = |
241 |
merge ( $left->{ $leftkey }, $right->{ $leftkey } ) |
merge ( $left->{ $leftkey }, $right->{ $leftkey } ) |
242 |
} else { |
} else { |
243 |
$newhash{ $leftkey } = |
$newhash{ $leftkey } = |
516 |
=head1 HISTORY |
=head1 HISTORY |
517 |
|
|
518 |
$Log$ |
$Log$ |
519 |
|
Revision 1.2 2003/02/20 05:53:44 joko |
520 |
|
+ sub set_mixin_behavior |
521 |
|
|
522 |
Revision 1.1 2003/02/20 05:18:04 joko |
Revision 1.1 2003/02/20 05:18:04 joko |
523 |
+ initial commit, to-be-enhanced |
+ initial commit, to-be-enhanced |
524 |
|
|
525 |
Revision 0.07 2002/02/19 00:21:27 mneylon |
Revision 0.07 2002/02/19 00:21:27 mneylon |
526 |
Fixed problem with ActiveState Perl's Clone.pm implementation. |
Fixed problem with ActiveState Perl's Clone.pm implementation. |
527 |
Fixed typo in POD. |
Fixed typo in POD. |