What is the Difference between @array[1] and $array[1]

Can anyone please tell me the difference between @array[1] and $array[1].
I need help to make an array of arrays and recursive data types.
Is it possible to make an array of structures which contains various data types?
Thanks so much for the help.
