my $addr = mapFile( );
substr( $addr, 32, 4 ) = pack 'V', 1+ unpack( 'V', substr $addr, 32, 4 );
####
$s = '0123456789';;
++substr( $s, $_, 1) for 0 .. length $s;;
print $s;;
12345678911
####
$s = '999999999';;
++substr( $s, $_, 1) for 0 .. length $s;;
print $s;;
11111111119999
####
$s = chr(0) x 40;;
vec( $s, $_, 32 ) = $_ for 0 .. 9;;
print unpack 'N*', $s;;
0 1 2 3 4 5 6 7 8 9
$s = pack 'N*', 0 .. 9;;
print vec( $s, $_, 32 ) for 0 .. 9;;
0
1
2
3
4
5
6
7
8
9
{ no warnings 'portable'; print vec( $s, $_, 64 ) for 0 .. 5 };;
1
8589934595
17179869189
25769803783
34359738377
0
####
++u32at( $_ ) for $start .. $end;
u64at( int rand 2**37 ) *= 3 for 1 .. 1e6;
####
my $totalX = u64ref( $headerSize + 3 * 8 );
...
$totalNet = $subTotalA + $subTotalB - $subTotalC;
####
$$totalNet = $$subTotalA + $$subTotalB - $$subTotalC;
####
#! perl -slw
use strict;
use warnings;
use Inline C => <<'__EOI__';
SV* f(SV* sv, I32 pos, I32 len) {
SV* targ = newSV_type(SVt_PVLV);
sv_magic(targ, NULL, PERL_MAGIC_substr, NULL, 0);
LvTYPE(targ) = 'x';
LvTARG(targ) = SvREFCNT_inc_simple(sv);
LvTARGOFF(targ) = pos;
LvTARGLEN(targ) = len;
return targ;
}
__EOI__
use Devel::Peek qw( Dump );
sub f :lvalue;
my $x = "abcde";
my $r = ++f($x,2,1);
Dump $r;
print $x;
__END__
C:\test>ike2-lv.pl
SV = PVNV(0x3da9db8) at 0x277920
REFCNT = 1
FLAGS = (PADMY,POK,pPOK)
IV = 0
NV = 0
PV = 0x3f044c8 "d"\0
CUR = 1
LEN = 8
abdde