What are all these $@%* punctuation signs, and how do I know when to use them?by faq_monk (Initiate)
|on Oct 08, 1999 at 00:27 UTC||Need Help??|
Current Perl documentation can be found at perldoc.perl.org.
Here is our local, out-dated (pre-5.6) version:
They are type specifiers, as detailed in the perldata manpage:
$ for scalar values (number, string or reference) @ for arrays % for hashes (associative arrays) * for all types of that symbol name. In version 4 you used them like pointers, but in modern perls you can just use references.
While there are a few places where you don't actually need these type specifiers, you should always use them.
A couple of others that you're likely to encounter that aren't really type specifiers are:
<> are used for inputting a record from a filehandle. \ takes a reference to something.
<FILE> is neither the type specifier for files nor the name of the handle. It is the