in reply to Re^2: tied, or modified?
in thread tied, or modified?

which gives a different error:

As it should. Like I said, it's a bug in Deparse.

An anonymous hash is the anonhash opcode.

$ perl -MO=Concise,-exec -e'{}' 1 <0> enter 2 <;> nextstate(main 1 -e:1) v:{ 3 <0> pushmark s 4 <@> anonhash vK* 5 <@> leave[1 ref] vKP/REFC -e syntax OK

Note the lack of anonhash in the code that's actually produced by tied sub {}->().

$ perl -MO=Concise,-exec -e'tied sub {}->()' 1 <0> enter 2 <;> nextstate(main 2 -e:1) v:{ 3 <0> pushmark s 4 <0> pushmark sRM 5 <$> anoncode[CV ] lRM 6 <1> refgen sK/1 7 <1> rv2cv sK/NO() 8 <1> entersub[t2] sKRMS/NO(),TARG,1 9 <1> tied vK/1 a <@> leave[1 ref] vKP/REFC -e syntax OK

Deparse is wrong to add an anon hash constructor. Therefore, trying to execute the output of Deparse makes no sense.