What actually executes is the same:
$ perl -MO=Terse,-exec -e '$v1.$v2.$v3'
OP (0x16e5ad0) enter
COP (0x1817650) nextstate
PADOP (0x16e6eb0) gvsv GV (0x16e3b68) *v1
PADOP (0x16e5b80) gvsv GV (0x16e3b98) *v2
BINOP (0x16e5a50) concat [3]
PADOP (0x16e4c00) gvsv GV (0x16bee88) *v3
BINOP (0x16d5aa0) concat [5]
LISTOP (0x16e4ca0) leave [1]
-e syntax OK
$ perl -MO=Terse,-exec -e '"$v1$v2$v3"'
OP (0x1ecc200) enter
COP (0x200d6b0) nextstate
PADOP (0x1edac60) gvsv GV (0x1ed9b80) *v1
PADOP (0x1edbd40) gvsv GV (0x1ed9ca0) *v2
BINOP (0x1edba90) concat [3]
PADOP (0x1edba50) gvsv GV (0x1eb4e88) *v3
BINOP (0x1ecbaa0) concat [5]
LISTOP (0x1edb9d0) leave [1]
-e syntax OK