const Regex Interpreter::regex(const String::Value& regexp, Raw_string flags) const { Scalar::Temp temp = implementation::Call_stack(raw_interp.get()).push(regexp, flags).sub_scalar("Embed::Perlpp::regexp"); return Regex(std::unique_ptr<Regex::Implementation>(new Regex::Implementation(raw_interp.get(), temp.release()))); }
void Perl_stack::push(const Scalar::Temp& value) { XPUSHs(sv_2mortal(value.has_ownership() ? value.release() : SvREFCNT_inc(value.get_SV(false)))); }