What are common pitfalls or gotchas with embedding Perl in C?

Embedding Perl in C can be powerful, but it comes with its own set of challenges. Common pitfalls include memory management issues, improper initialization of the Perl interpreter, and mishandling of Perl data structures. Understanding these can help avoid runtime errors and crashes.
embedding Perl, C programming, Perl interpreter, memory management, Perl data structures, common pitfalls

    #include 
    #include 
    #include 

    int main(int argc, char **argv, char **env) {
        // Initialize Perl interpreter
        PERL_SYS_INIT3(&argc, &argv, &env);
        PerlInterpreter *my_perl = perl_alloc();
        perl_construct(my_perl);

        // Set environment variables and command-line args
        char *pretend_argv[] = {"perl", "-e", "print 'Hello from Perl!'", NULL};
        char **perl_argv = pretend_argv;

        perl_parse(my_perl, NULL, 3, perl_argv, NULL);
        perl_run(my_perl);

        // Clean up script resources
        perl_destruct(my_perl);
        perl_free(my_perl);
        PERL_SYS_TERM();
        return 0;
    }
    

embedding Perl C programming Perl interpreter memory management Perl data structures common pitfalls