in reply to Re^2: Where does time come from? CORE::GLOBAL:time no honored. (order)
in thread Where does time come from? CORE::GLOBAL:time no honored.

I don't think so, but here's one:

The items in perlfunc are actually operators. Overriding of these named operators is handled by the parser, not by the overridden operator. When the parser encounters a named operator such as time it normally places an invocation of the operator in the opcode tree.

$ perl -MO=Concise,-exec -e'time()' 1 <0> enter 2 <;> nextstate(main 1 -e:1) v 3 <0> time[t1] v <-- time operator 4 <@> leave[1 ref] vKP/REFC -e syntax OK

But when the operator has been overloaded, it places a subroutine invocation in the opcode tree instead.

$ perl -MO=Concise,-exec -e'BEGIN { *CORE::GLOBAL::time = sub {} } tim +e()' 1 <0> enter 2 <;> nextstate(main 3 -e:1) v 3 <0> pushmark s 4 <#> gv[*CORE::GLOBAL::time] s <-- sub name 5 <1> entersub[t2] vKS/TARG,1 <-- sub invocation 6 <@> leave[1 ref] vKP/REFC -e syntax OK

The same goes when overriding a named operator locally.

$ perl -MO=Concise,-exec -e'use subs qw( time ); time()' 1 <0> enter 2 <;> nextstate(main 12 -e:1) v 3 <0> pushmark s 4 <#> gv[*time] s <-- sub name 5 <1> entersub[t2] vKS/TARG,1 <-- sub invocation 6 <@> leave[1 ref] vKP/REFC -e syntax OK

Re^2: Where does time come from? CORE::GLOBAL:time no honored. (order) has an example.