# perl > 5.36 no longer uses the my_perl macro/Imodglobal 
Index: libfungwbind/perl/fungw_perl.c
--- libfungwbind/perl/fungw_perl.c.orig
+++ libfungwbind/perl/fungw_perl.c
@@ -32,7 +32,7 @@
    struct, but in return the init function can't create variables or
    in the interpreter before parsing a script; this workaround creates a
    a key in modglobal. */
-#define perl_user_data_hash Imodglobal
+#define perl_user_data_hash PL_modglobal
 #define perl_user_data_key "fungw::_context"
 
 
@@ -95,7 +95,7 @@ static SV *fgws_perl_arg2sv(fgw_ctx_t *fctx, perl_ctx_
 /* API: the script is calling an fgw function */
 static XS(fgws_perl_call_fgw)
 {
-	SV **svp = hv_fetchs(my_perl->perl_user_data_hash, perl_user_data_key, 0);
+	SV **svp = hv_fetchs(perl_user_data_hash, perl_user_data_key, 0);
 	perl_ctx_t *ctx = INT2PTR(perl_ctx_t *, SvIV(*svp));
 	fgw_func_t *func;
 	GV *gv;
@@ -240,7 +240,7 @@ static XS(fgws_perl_func_reg)
 {
 	dXSARGS;
 	const char *name;
-	SV **svp = hv_fetchs(my_perl->perl_user_data_hash, perl_user_data_key, 0);
+	SV **svp = hv_fetchs(perl_user_data_hash, perl_user_data_key, 0);
 	perl_ctx_t *ctx = INT2PTR(perl_ctx_t *, SvIV(*svp));
 	fgw_func_t *func;
 
@@ -287,7 +287,7 @@ static int fgws_perl_init(fgw_obj_t *obj, const char *
 	PERL_SET_CONTEXT(ctx->interp);
 	perl_construct(ctx->interp);
 	obj->script_data = ctx;
-	hv_stores(ctx->interp->perl_user_data_hash, perl_user_data_key, newSViv(PTR2IV(ctx)));
+	hv_stores(perl_user_data_hash, perl_user_data_key, newSViv(PTR2IV(ctx)));
 	ctx->obj = obj;
 	ctx->freg_delay = 1;
 
