A list is a very general word. Perhaps you mean a list operator or a list value.
There is no comma in the code, so there is no list operator.
There is no list context in the code, so there is no list value.
Therefore, there is no list in
my $s = ();
Parentheses never create a list
(Only indirectly when on an LHS assignment statement.)
,
Perl "" ( ), . , .
" ", .
. undef, undef.
, .
, . , .
aka - .
. :
>perl -MO=Concise -e"my $s = ();"
6 <@> leave[1 ref] vKP/REFC ->(end)
1 <0> enter ->2
2 <;> nextstate(main 1 -e:1) v:{ ->3
5 <2> sassign vKS/2 ->6
3 <0> stub sP ->4
4 <0> padsv[$s:1,2] sRM*/LVINTRO ->5
-e syntax OK
>perl -MO=Concise -e"my @a = ();"
7 <@> leave[1 ref] vKP/REFC ->(end)
1 <0> enter ->2
2 <;> nextstate(main 1 -e:1) v:{ ->3
6 <2> aassign[t2] vKS ->7
- <1> ex-list lK ->4
3 <0> pushmark s ->4
- <0> stub lP ->-
- <1> ex-list lK ->6
4 <0> pushmark s ->5
5 <0> padav[@a:1,2] lRM*/LVINTRO ->6
-e syntax OK
... parens
>perl -MO=Concise -e"my @a = 's';"
8 <@> leave[1 ref] vKP/REFC ->(end)
1 <0> enter ->2
2 <;> nextstate(main 1 -e:1) v:{ ->3
7 <2> aassign[t2] vKS ->8
- <1> ex-list lK ->5
3 <0> pushmark s ->4
4 <$> const[PV "s"] s ->5
- <1> ex-list lK ->7
5 <0> pushmark s ->6
6 <0> padav[@a:1,2] lRM*/LVINTRO ->7
-e syntax OK