There are many in perl, but none in Perl.
perl is the interpreter and of course its implementation uses plenty of
pointers.
However the programming language Perl uses references to create dynamic
data structures,
There is no universally agreed upon definition of the terms "reference"
and "pointer" which allows to distinguish between these two terms.
A "pointer" in Pascal has different properties than a "pointer" in C or
C++. C++ distinguishes between "references" and "pointers". Java
doesn't have anything called "pointers" or "references", but clearly
object variables" don't contain an object, they "reference" it or "point
to" it. Other languages have different convention.
In Perl, the term is "reference", but as for all other languages, this
is language-specific jargon, not a conceptional difference.
A Perl "reference" is very similar to a Pascal "pointer" or a Java
"object variable". It is quite different from both a C++ "pointer" and a
C++ "reference", although it is closer to the "pointer" than the
"reference" (A C++ "reference" is similar to a Perl "alias").
So yes, there are "pointers" in the generic sense in Perl and they are
called "references". There is no equivalent to "C or C++ pointers" in
Perl.
which are _MUCH_ more programmer-friendly than primitive pointers.
I would argue that a C pointer is *less* primitive than a Perl
reference. A perl reference can only be dereferenced, assigned, and
compared for equality. A C pointer has a much richer set on operations
defined on it: In addition to the operations possible on a Perl
reference (or a Pascal pointer), you can add or subtract an integer, you
can subtract one pointer from another and you can order them.
C doesn't do garbage collection, but that's a property of the language
as a whole, not of C-type pointers. A language with C-type pointers and
garbage collection is entirely possible. (Indeed, I think the C standard
even allows this, but it doesn't mandate it).
hp