📄 magic
字号:
sv_magic()----------av.cav_store() Storing a non-undef element into an SMAGICAL array, av, assigns the equivalent lowercase form of magic (of the first MAGIC in the chain) to the value (with obj = av, name = 0 and namlen = array index).gv.cgv_init() Initialising gv assigns '*' magic to it with obj = gv, name = GvNAME and namlen = GvNAMELEN.gv_fetchpv() @ISA gets 'I' magic with obj = gv, zero name and namlen. %OVERLOAD gets 'A' magic with obj = gv, zero name and namlen. $1 to $9, $&, $`, $', $+ get '\0' magic with obj = gv, name = GvNAME and namlen = len ( = 1 presumably).Gv_AMupdate() Stashes for overload magic seem to get 'c' magic with obj = 0, name = &amt and namlen = sizeof(amt).hv_magic(hv, gv, how) Gives magic how to hv with obj = gv and zero name and namlen.mg.cmg_copy(sv, nsv, key, klen) Traverses the magic chain of sv. Upper case forms of magic (only) are copied across to nsv, preserving obj but using name = key and namlen = klen.magic_setpos() LvTARG of a PVLV gets 'g' magic with obj = name = 0 and namlen = pos.op.cmod() PVLV operators give magic to their targs with obj = name = namlen = 0. OP_POS gives '.', OP_VEC gives 'v' and OP_SUBSTR gives 'x'.perl.cmagicname(sym, name, namlen) Fetches/creates a GV with name sym and gives it '\0' magic with obj = gv, name and namlen as passed.init_postdump_symbols() Elements of the environment get given SVs with 'e' magic. obj = sv and name and namlen point to the actual string within env.pp.cpp_av2arylen() $#foo gives '#' magic to the new SV with obj = av and name = namlen = 0.pp_study() SV gets 'g' magic with obj = name = namlen = 0.pp_substr() PVLV gets 'x' magic with obj = name = namlen = 0.pp_vec() PVLV gets 'x' magic with obj = name = namlen = 0.pp_hot.cpp_match() m//g gets 'g' magic with obj = name = namlen = 0.pp_sys.cpp_tie() sv gets magic with obj = sv and name = namlen = 0. If an HV or an AV, it gets 'P' magic, otherwise 'q' magic.pp_dbmopen() 'P' magic for the HV just as with pp_tie().pp_sysread() If tainting, the buffer SV gets 't' magic with obj = name = namlen = 0.sv.csv_setsv() Doing sv_setsv(dstr, gv) gives '*' magic to dstr with obj = dstr, name = GvNAME, namlen = GvNAMELEN.util.cfbm_compile() The PVBM gets 'B' magic with obj = name = namlen = 0 and SvVALID is set to indicate that the Boyer-Moore table is valid. magic_setbm() just clears the SvVALID flag.hv_magic()----------gv.cgv_fetchfile() With perldb, the HV of a gvfile gv gets 'L' magic with obj = gv.gv_fetchpv() %SIG gets 'S' magic with obj = siggv.init_postdump_symbols() %ENV gets 'E' magic with obj = envgv.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -