В Perl существует три типа структур данных: скаляры, массивы скаляров и хеши (hashes) - ассоциативные массивы скаляров. Обычно элементы массивов индексируются целыми числами, первый элемент - нулевой. Отрицательное значение индекса обозначает номер позиции элемента с конца. Хеши индексируются строками символов.

Имена скалярных переменных всегда начинаются с символа '$' даже когда обозначают элемент массива.

Пример:

	$var1		# Простой скаляр 'var1'

	$var1[0]	# Первый элемент массива 'var1'

	$var1{'first'}	# Элемент с индексом 'first'

В случае использования имени массива "целиком" или его "среза" перед именем массива ставится символ '@'.

Пример:

	@var1		# Все элементы массива var1 
	( $var1[0], $var1[1], ... $var1[n])

	@var1[1,3,10]	# Элементы $var1[1],
	 $var1[3], $var1[10]

	@var1{'first','last'} # то же что и 
	( $var1{'first'}, $var1{'last'} )

Хеш "целиком" начинается с символа '%'.

Пример:

	%var, %key, %years

Имена подпрограмм начинаются символом '&', если из контекста не видно, что это подпрограмма.

Пример:

	&sub1, &test_prog, test(12)

Имена таблиц символов всегда начинаются символом '*'.

Каждый тип переменных имеет свою область памяти поэтому $var1 и $var1[0] совершенно разные переменные, хотя $var1[0] часть массива @var1. Так же @var1 и %var1 - разные массивы переменных.

Имена переменных могут содержать любые буквенно-цифровые символы за исключением пробела и табуляции. Эти символы используются в качестве разделителей. Большие и малые буквы различаются поэтому $var1 и $Var1 - разные переменные. В Perl по умолчанию имена меток и указателей файлов пишут большими буквами.