> No, perl doesn't use a garbage collector.
most probably a problem of fuzzy terminology¹, perldoc talks about "garbage collection":
Perl uses a fast and simple, reference-based garbage collection system
see perlobj#Two-Phased-Garbage-Collection
But as opposed to mark-and-sweep Perl's runtime approach is very simple an efficient.
OTOH it can't handle circular references.
And even if mark-and-sweep was used, IIRC Python does it and is still very performant. ²
UPDATES:
¹) from perlglossary
garbage collection
A misnamed feature--it should be called, "expecting your mo
+ther to
pick up after you". Strictly speaking, Perl doesn’t do thi
+s, but
it relies on a reference-counting mechanism to keep things
+tidy.
However, we rarely speak strictly and will often refer to t
+he
reference-counting scheme as a form of garbage collection.
+ (If
it’s any comfort, when your interpreter exits, a "real" gar
+bage
collector runs to make sure everything is cleaned up if you
+’ve been
messy with circular references and such.)
²) more complicated: "While Python uses the traditional reference counting implementation, it also offers a cycle detector that works to detect reference cycles." |