A list is an ordered collection of scalars. An array is a variable that contains a list. The two terms are often used as if they're interchangeable. But, to be accurate, the list is the data, and the array is the variable. You can have a list value that isn't in an array, but every array variable holds a list (although that list may be empty).
List Assignment
($fred, $barney, $dino) = ("flintstone", "rubble", undef);
($fred, $barney) = ($barney, $fred);
Array Assignment
@rocks = qw/ bedrock slate lava /;
@tiny = ( ); # the empty list
$dino = "granite";
@quarry = (@rocks, "crushed rock", @tiny, $dino);