A sigil, in Perl, is a mystical symbol attached to the front of the variable name.

A course for the Impatient: $ means a variable has a scalar value, @ means we're dealing with an indexed array, % refers to a Hash, that is, an associative array, and * means a typeglob, a horror from the Netherworld that often must not be spoken of aloud.

Only the most powerful technomancers, however, can truly understand the true meaning of sigils in Perl 5. In earlier days, it simply meant what the expression returned: $x[1] returned a scalar value from array, @x[1] returned a single-cell slice array. The hastily thought OO features, which some consider the Gods of Perl unleashed with not too great care, brought confusion, as objects looked like scalar references. However, the Gods have brought us a Vision which says all shall, once again, be well when Perl 6 comes along.

("Sigil" is Wallian-Conwayian techspeak used when talking of Perl6, taken from Perl 6 babble...)