- weaken
Memory leak with cross references - weaken
examples/references/memory_leak_weaken.pl
#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use Scalar::Util qw(weaken); # memory leak # try running with 5,000,000 make_match('Foo', 'Bara', 'dump'); my $n = $ARGV[0] || 0; for (1..$n) { make_match('Foo', 'Bara'); } if (@ARGV) { print "Please press ENTER to finish..."; <STDIN>; } sub make_match { my ($man_name, $woman_name, $dump) = @_; my $man = { name => $man_name, }; my $wife = { name => $woman_name, }; $man->{wife} = $wife; $wife->{man} = $man; weaken $wife->{man}; if ($dump) { print Dumper $man, $wife; } }