my(@a) = (); # This declares a lexically scoped array and initializes # it to be empty. my($b) = {}; # This declares a lexically scoped scalar and initializes # it to a reference to an empty anonymous hash. my(@c) = []; # This is probably a mistake. # It declares a lexically scoped array and sets its # first element to a reference to an empty anonymous # array. my(%d) = (); # This declares a lexically scoped hash and initializes # it to be empty.