Soy muy nuevo en este módulo Parallel::ForkManager en Perl y tiene muchos créditos, así que creo que es compatible con lo que necesito y aún no lo he descubierto.¿El módulo Parallel :: ForkManager() admite la sincronización en variables globales?
Lo que tengo que hacer es en cada proceso hijo, escribe algunas actualizaciones en un mapa global de hash, de acuerdo con el valor de la clave calculada en cada proceso hijo. Sin embargo, cuando procedo a reclamar un mapa hash fuera del bucle for y espero que el mapa hash se actualice después del bucle, resulta que el mapa hash permanece vacío. Esto significa que aunque la actualización dentro del bucle tiene éxito (imprimiendo el valor), fuera del bucle no lo es.
¿Alguien sabe cómo escribir una pieza de código que hace lo que yo quiero tal?
Gracias a todos, ahora entiendo! Esperaba que el ForkManager() se ocupara de este problema. :-) En mi caso, IPC podría ser excesivo. Me gusta la forma concisa de usar ForkManager(), ¿existe una manera fácil de compartir un mapa hash global entre procesos utilizando ForkManager()? – galactica
@Jin: Obtener datos de un proceso a otro * es * IPC. Eso es lo que significa. No tiene que ser difícil, sin embargo. – hobbs
@Jin: sí, use un hash vinculado; ver http://search.cpan.org/perldoc/BerkeleyDB para uno. – ysth