aboutsummaryrefslogtreecommitdiff
path: root/devel/p5-B-COW/pkg-descr
blob: d36f9b7c8980032180db28c7d28146b27763e3a4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
B::COW provides some naive additional B helpers to check the COW status of one
SvPV.

A COWed SvPV is sharing its string (the PV) with other SvPVs. It's a (kind of)
Read Only C string, that would be Copied On Write (COW). More than one SV can
share the same PV, but when one PV need to alter it, it would perform a copy of
it, decrease the COWREFCNT counter. One SV can then drop the COW flag when it's
the only one holding a pointer to the PV. The COWREFCNT is stored at the end of
the PV, after the the "\0". That value is limited to 255, when we reach 255, a
new PV would be created,