C:\path>perl -v | find "This is"
This is perl 5, version 28, subversion 0 (v5.28.0) built for MSWin32-x64-multi-thread
####
C:\path>type return_hash_keys.pl
use strict;
use warnings;
sub zort {
my %hash = (a => 1);
return keys %hash;
};
my @x = zort();
#my $aa = $x[0];
C:\path>perl -MO=Concise,-src return_hash_keys.pl
a <@> leave[1 ref] vKP/REFC ->(end)
1 <0> enter ->2
# 7: my @x = zort();
2 <;> nextstate(main 6 return_hash_keys.pl:7) v:*,&,{,x*,x&,x$,$ ->3
9 <2> aassign[t2] vKS/COM_AGG ->a
- <1> ex-list lK ->7
3 <0> pushmark s ->4
6 <1> entersub lKS/STRICT ->7
- <1> ex-list lK ->6
4 <0> pushmark s ->5
- <1> ex-rv2cv sK/STRICT,1 ->-
5 <#> gv[IV \&main::zort] s ->6
- <1> ex-list lK ->9
7 <0> pushmark s ->8
8 <0> padav[@x:6,7] lRM*/LVINTRO ->9
return_hash_keys.pl syntax OK
##
##
C:\path>type return_hash_ref.pl
use strict;
use warnings;
sub zort {
my %hash = (a => 1);
return \%hash
};
my $x = zort();
my @x = keys %$x;
#my $aa = $x[0];
C:\path>perl -MO=Concise,-src return_hash_ref.pl
g <@> leave[1 ref] vKP/REFC ->(end)
1 <0> enter ->2
# 7: my $x = zort();
2 <;> nextstate(main 6 return_hash_ref.pl:7) v:*,&,{,x*,x&,x$,$ ->3
7 <2> sassign vKS/2 ->8
5 <1> entersub sKS/STRICT ->6
- <1> ex-list sK ->5
3 <0> pushmark s ->4
- <1> ex-rv2cv sK/STRICT,1 ->-
4 <#> gv[IV \&main::zort] s ->5
6 <0> padsv[$x:6,8] sRM*/LVINTRO ->7
# 8: my @x = keys %$x;
8 <;> nextstate(main 7 return_hash_ref.pl:8) v:*,&,{,x*,x&,x$,$ ->9
f <2> aassign[t6] vKS/COM_AGG ->g
- <1> ex-list lK ->d
9 <0> pushmark s ->a
c <1> keys[t5] lK/1 ->d
b <1> rv2hv[t2] lKRM/STRICT ->c
a <0> padsv[$x:6,8] sM/DREFHV ->b
- <1> ex-list lK ->f
d <0> pushmark s ->e
e <0> padav[@x:7,8] lRM*/LVINTRO ->f
return_hash_ref.pl syntax OK