#! /usr/local/bin/perl use myModule; use warnings; #shared scalar $cb_done = 0; @results = (); #This cb would be invoked by the cloned interpreter in the #C library. This works fine. sub cb_one { ($value) = @_; print "CB called. val received : ", $value, "\n"; $results[scalar(@results)] = $value; if ($value == 5) { print "cb_done changed to one.\n"; $cb_done = 1; } } print "Registered CB...\n"; $status = myModule::RegisterCB(\&main::cb_one); do { print "Waiting for CB to be done...\n"; sleep (5); } until ($cb_done == 1); #These line should be printed when $cb_done becomes 1 #in the main of the perl script print "CB was invoked : $cb_done\n"; print "results are : @results \n";