sub check_1 { my $query = " SELECT * FROM __InstanceCreationEvent WHERE TargetInstance ISA'Win32_NTLogEvent' "; my $wbemloc = new Win32::OLE( "WbemScripting.SWbemLocator" ); $wbemloc->{ Security_ }{ Privileges } ->AddAsString( "SeSecurityPrivilege" ); my $wbemsvc = $wbemloc->ConnectServer( ".", "root/cimv2" ); $wbemsvc->{ Security_ }{ ImpersonationLevel } = 3; my $wbemevtsrc = $wbemsvc->ExecNotificationQuery( $query ); while( 1 ) { my $wbemobj = $wbemevtsrc->NextEvent(); my $msg = $wbemobj->{ TargetInstance }{ Message }; $msg =~ s/\t//g; my @array = split( /\r\n/, $msg ); my $tst = join( ';', @array ); $tst =~ s/;;/;/g; print $tst."\n"; } } #### #! perl -slw use strict; use threads qw[ async ]; sub sub1 { my $no = shift; while(1) { print "in sub $no"; select undef, undef, undef, 0.1; } } async \&sub1, 1; ## Param = '1' sub1( 2 ); ## Param = '2' __END__ P:\test>397011 in sub 2 in sub 1 in sub 2 in sub 1 in sub 2 in sub 1 Terminating on signal SIGINT(2)