Skip to content

Instantly share code, notes, and snippets.

@hfm
Created December 23, 2013 13:40
Show Gist options
  • Select an option

  • Save hfm/8097294 to your computer and use it in GitHub Desktop.

Select an option

Save hfm/8097294 to your computer and use it in GitHub Desktop.
$ perl -MO=Bytecode,-S learning-perl/chap1/helloworld.pl
#!/usr/bin/perl
print "Hello World!\n";
#magic 0x43424c50
#archname darwin-2level
#blversion 0.09
#ivsize 8
#ptrsize 8
#byteorder 12345678
#longsize 8
#archflag 0
#perlversion 5.010001
# <push_begin>
# <end_begin>
# <main_start>
# [leave 1]
newopx 23224 # 23224=size:56,type:181
op_flags 13 # WANT_VOID,KIDS,PARENS
op_next 0
op_targ 1
op_private 64
# [print 2]
newopx 28216 # 28216=size:56,type:220
op_flags 5 # WANT_VOID,KIDS
op_next 1
op_targ 0
op_private 0
# [const 3]
newopx 688 # 688=size:48,type:5
# [PV 4]
newsvx 134235141 # type=5,flags=0x8004405,PV "Hello World!\n"
sv_refcnt 1
newpv "Hello World!\n\000"
xpv
op_flags 2 # WANT_SCALAR
op_next 2
op_targ 0
op_private 0
op_sv 4
# [pushmark 5]
newopx 424 # 424=size:40,type:3
op_flags 2 # WANT_SCALAR
op_next 3
op_targ 0
op_private 0
# [nextstate 6]
newopx 22744 # 22744=size:88,type:177
# [SPECIAL 7]
ldspecsvx 6 # (SV*)pWARN_STD
# [STASH 8]
gv_stashpvx "main"
sv_flags 570425356 # 0x2200000c
# -PV- 9
newpv "main\000"
stpv 9
xhv_name 9
sv_refcnt 2
# [GV 10]
gv_fetchpvx "main::_<learning-perl/chap1/helloworld.pl"
sv_flags 32777 # 0x8009
sv_refcnt 3
xgv_flags 0 # 0x0
gp_refcnt 1
# [PV 11]
newsvx 17413 # type=5,flags=0x4405,PV "learning-perl/chap1/helloworld.pl"
sv_refcnt 1
newpv "learning-perl/chap1/helloworld.pl\000"
xpv
# -GP-
ldsv 10 # *_<learning-perl/chap1/helloworld.pl
gp_sv 11 # PV "learning-perl/chap1/helloworld.pl"
gp_av 0 # B::SPECIAL
gp_hv 0 # B::SPECIAL
gp_cv 0 # B::SPECIAL
gp_io 0
gp_cvgen 0
gp_form 0
# -PV- 12
newpv "\000"
stpv 12
gp_file 12
gp_line 0
op_flags 1 # WANT_VOID
op_next 5
op_targ 0
op_private 0
cop_stash 8
cop_filegv 10
cop_seq 1608
cop_line 2
cop_warnings 7
# [enter 13]
newopx 23080 # 23080=size:40,type:180
op_flags 0 #
op_next 6
op_targ 0
op_private 0
main_start 13
# <main_root>
main_root 1
# <main_cv>
# [CV 14]
newsvx 13 # type=13,flags=0xd,CV undef
# [AV 15]
newsvx 11 # type=11,flags=0xb,AV undef
# [AV 16]
newsvx 1073741835 # type=11,flags=0x4000000b,AV undef
sv_refcnt 1
xmg_stash 0
# [AV 17]
newsvx 1073741835 # type=11,flags=0x4000000b,AV undef
# [SPECIAL 18]
ldspecsvx 1 # &PL_sv_undef
# -AV-
ldsv 17 # AV undef
av_extend 3
av_pushx 18
av_pushx 18
sv_refcnt 1
xmg_stash 0
# -AV-
ldsv 15 # AV undef
av_extend 3
av_pushx 16
av_pushx 17
sv_refcnt 1
xmg_stash 0
# -CV-
ldsv 14 # CV undef
sv_refcnt 1
xmg_stash 0
xcv_stash 0
xcv_start 0
xcv_root 0
xcv_xsubany 0
xcv_padlist 15
xcv_outside 0
xcv_outside_seq 0
xcv_depth 0
xcv_flags 256
xcv_gv 0
main_cv 14
# <curpad>
curpad 17
dowarn
# <DATA>
ret
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment