##################################################### my @report; Scan::ScanAll(\@addr, \@port, \@report); #bugs here "bug1"; printf "Report ref is : @report \n"; #"tag1" to see if script can run here Report::TxtReport(@report); system("gedit report.txt"); ###################################################### #### this is the output when run only one address ###################################################### 192.168.1.3 Create one thread for 192.168.1.3 192.168.1.3 135/tcp 139/tcp 445/tcp Finish ScanAll sub, Get Out of Scan.pm ARRAY(0x867f1cc) Report ref is : ARRAY(0x867f1cc) ###here get out of ###Scan::ScanAll, and I printed the @report, code can go on Get in Html Report.pm 192.168.1.3 135/tcp msrpc 135 tcp Microsoft RPC services 139/tcp 445/tcp A Session finished Scaning! excting ###debug msg show finish ### here I called firefox to read the report in html, in ### common, finish all the scan should print as upon GLib-GObject-WARNING **: instance with invalid (NULL) class pointer. GLib-GObject-CRITICAL **: file gsignal.c: line 2122 (g_signal_emit_valist): assertion `G_TYPE_CHECK_INSTANCE (instance)' failed. GLib-GObject-WARNING **: instance with invalid (NULL) class pointer. GLib-GObject-CRITICAL **: file gsignal.c: line 1765 (g_signal_handlers_destroy): assertion `G_TYPE_CHECK_INSTANCE (instance)' failed. ###################################################### this is the output when run >1 addresses ###################################################### 10.0.144.90 192.168.1.2 192.168.1.3 Create one thread for 10.0.144.90 Create one thread for 192.168.1.2 Create one thread for 192.168.1.3 10.0.144.90 192.168.1.2 192.168.1.3 135/tcp 139/tcp 445/tcp Finish ScanAll sub, Get Out of Scan.pm ARRAY(0x8661c8c) ARRAY(0x8661d88) ARRAY(0x8661dac) ###here get out of Scan::ScanAll, the refs are printed in ###Scan::ScanALL as a debugs msg, it shows me, in ###Scan::ScanALL, @result is ok yet, it can not run on when ###return from Scan::ScanAll. Lib-GObject-WARNING **: instance of invalid non-instantiatable type `gpointer' during global destruction. Lib-GObject-CRITICAL **: file gsignal.c: line 2122 (g_signal_emit_valist): assertion `G_TYPE_CHECK_INSTANCE (instance)' failed during global destruction. Lib-GObject-WARNING **: instance of invalid non-instantiatable type `gpointer' during global destruction. Lib-GObject-CRITICAL **: file gsignal.c: line 1765 (g_signal_handlers_destroy): assertion `G_TYPE_CHECK_INSTANCE (instance)' failed during global destruction. Lib-GObject-WARNING **: instance of invalid non-instantiatable type `' during global destruction. Lib-GObject-CRITICAL **: file gsignal.c: line 2122 (g_signal_emit_valist): assertion `G_TYPE_CHECK_INSTANCE (instance)' failed during global destruction. Lib-GObject-WARNING **: instance of invalid non-instantiatable type `' during global destruction. Lib-GObject-CRITICAL **: file gsignal.c: line 1765 (g_signal_handlers_destroy): assertion `G_TYPE_CHECK_INSTANCE (instance)' failed during global destruction. Lib-GObject-WARNING **: instance of invalid non-instantiatable type `' during global destruction. Lib-GObject-CRITICAL **: file gsignal.c: line 2122 (g_signal_emit_valist): assertion `G_TYPE_CHECK_INSTANCE (instance)' failed during global destruction. Lib-GObject-WARNING **: instance of invalid non-instantiatable type `' during global destruction. Lib-GObject-CRITICAL **: file gsignal.c: line 1765 (g_signal_handlers_destroy): assertion `G_TYPE_CHECK_INSTANCE (instance)' failed during global destruction.