Can't locate object method "new" via package "Parallel::ForkManager" (perhaps you forgot to load "Parallel::ForkManager"?) at C:\Documents and Settings\Owner\Desktop\n13.pl line 40 (#2) Uncaught exception from user code: Can't locate object method "new" via package "Parallel::ForkManager" (perhaps you forgot to load "Parallel::ForkManager"?) at C:\Documents and Settings\Owner\Desktop\n13.pl line 40. at C:\Documents and Settings\Owner\Desktop\n13.pl line 40 #### C:\Documents and Settings\Owner\Desktop>perl n13.pl Name "main::OUTPUT" used only once: possible typo at n13.pl line 39 (#1) (W once) Typographical errors often show up as unique variable names. If you had a good reason for having a unique name, then just mention it again somehow to suppress the message. The our declaration is provided for this purpose. NOTE: This warning detects symbols that have been used only once so $c, @c, %c, *c, &c, sub c{}, c(), and c (the filehandle or format) are considered the same; if a program uses $c only once but also uses any of the others it will not trigger this warning. Parsing of undecoded UTF-8 will give garbage when decoding entities at n13.pl li ne 58, line 2. C:\Documents and Settings\Owner\Desktop> #### C:\Documents and Settings\Owner\Desktop>perl -d n13.pl Name "main::OUTPUT" used only once: possible typo at n13.pl line 39 (#1) (W once) Typographical errors often show up as unique variable names. If you had a good reason for having a unique name, then just mention it again somehow to suppress the message. The our declaration is provided for this purpose. NOTE: This warning detects symbols that have been used only once so $c, @c, %c, *c, &c, sub c{}, c(), and c (the filehandle or format) are considered the same; if a program uses $c only once but also uses any of the others it will not trigger this warning. Attempt to free non-existent shared string 'ì‚', Perl interpreter: 0x7331ad4 at (eval 2)[C:/Perl/lib/DynaLoader.pm:225] line 1, line 3. Attempt to free non-existent shared string 'LineNumber', Perl interpreter: 0x733 1ad4 at (eval 2)[C:/Perl/lib/DynaLoader.pm:225] line 1, line 3. Attempt to free non-existent shared string 'SourceFile', Perl interpreter: 0x733 1ad4 at (eval 2)[C:/Perl/lib/DynaLoader.pm:225] line 1, line 3. Attempt to free non-existent shared string 'WatchList', Perl interpreter: 0x7331 ad4 at (eval 2)[C:/Perl/lib/DynaLoader.pm:225] line 1, line 3. Attempt to free non-existent shared string 'Command', Perl interpreter: 0x7331ad 4 at (eval 2)[C:/Perl/lib/DynaLoader.pm:225] line 1, line 3. Free to wrong pool 59184e0 not 235c78 at (eval 2)[C:/Perl/lib/DynaLoader.pm:225] line 1, line 3. C:\Documents and Settings\Owner\Desktop> #### > perl510.dll!VMem::Free(void * pMem=0x0187742c) Line 218 C++ perl510.dll!PerlMemFree(IPerlMem * piPerl=0x0781ed6c, void * ptr=0x0187742c) Line 310 C++ perl510.dll!Perl_safesysfree(void * where=0x0187742c) Line 250 + 0xe C perl510.dll!Perl_hv_undef(interpreter * my_perl=0x07823a1c, hv * hv=0x00000000) Line 1786 C perl510.dll!Perl_sv_clear(interpreter * my_perl=0x07823a1c, sv * sv=0x0000000c) Line 5184 + 0x7 C perl510.dll!Perl_sv_free2(interpreter * my_perl=0x07823a1c, sv * sv=0x01a21a34) Line 5367 C perl510.dll!Perl_sv_free(interpreter * my_perl=0x07823a1c, sv * sv=0x01a21a34) Line 5345 + 0xa C OLE.dll!ReleasePerlObject(interpreter * my_perl=0x000573fc, WINOLEOBJECT * pObj=0x01a525d4) Line 1198 C++ OLE.dll!Uninitialize(interpreter * my_perl=0x07823a1c, PERINTERP * pInterp=0x01a2fe14) Line 3271 + 0xa C++ OLE.dll!XS_Win32__OLE_Initialize(interpreter * my_perl=0x08493700, cv * cv=0x00360b14) Line 3478 + 0x7 C++ perl510.dll!Perl_pp_entersub(interpreter * my_perl=0x079933f4) Line 2847 + 0x4 C perl510.dll!Perl_runops_standard(interpreter * my_perl=0x07823a1c) Line 36 + 0xc C perl510.dll!Perl_call_sv(interpreter * my_perl=0x07823a1c, sv * sv=0x08651a84, long flags=6) Line 2647 + 0xc C perl510.dll!Perl_call_list(interpreter * my_perl=0x07823a1c, long oldscope=9, av * paramList=0x086519d4) Line 5158 C perl510.dll!win32_start_child(void * arg=0x07823a1c) Line 1778 + 0xa C++ kernel32.dll!_BaseThreadStart@8() + 0x37 #### my @unresolved = dl_undef_symbols(); if (@unresolved) { require Carp; Carp::carp("Undefined symbols present after loading $file: @unresolved\n"); } $boot_symbol_ref = dl_find_symbol($libref, $bootname) or croak("Can't find '$bootname' symbol in $file\n"); push(@dl_modules, $module); # record loaded module boot: my $xs = dl_install_xsub("${module}::bootstrap", $boot_symbol_ref, $file); # See comment block above push(@dl_shared_objects, $file); # record files loaded >>>>>>>>>>>>>>>>>>>> &$xs(@args); } #### void Initialize(...) ALIAS: Uninitialize = 1 SpinMessageLoop = 2 MessageLoop = 3 QuitMessageLoop = 4 FreeUnusedLibraries = 5 _Unique = 6 PPCODE: { char *paszMethod[] = {"Initialize", "Uninitialize", "SpinMessageLoop", "MessageLoop", "QuitMessageLoop", "FreeUnusedLibraries", "_Unique"}; if (CallObjectMethod(aTHX_ mark, ax, items, paszMethod[ix])) return; DBG(("Win32::OLE->%s()\n", paszMethod[ix])); if (items == 0) { warn("Win32::OLE->%s must be called as class method", paszMethod[ix]); XSRETURN_EMPTY; } HV *stash = gv_stashsv(ST(0), TRUE); SetLastOleError(aTHX_ stash); switch (ix) { case 0: { // Initialize DWORD dwCoInit = COINIT_MULTITHREADED; if (items > 1 && SvOK(ST(1))) dwCoInit = (DWORD)SvIV(ST(1)); Initialize(aTHX_ gv_stashsv(ST(0), TRUE), dwCoInit); break; } case 1: { // Uninitialize dPERINTERP; >>>>>>>>>>>>> Uninitialize(aTHX_ INTERP); break; #### void Uninitialize(pTHX_ PERINTERP *pInterp) { DBG(("Uninitialize\n")); EnterCriticalSection(&g_CriticalSection); if (g_bInitialized) { OBJECTHEADER *pHeader = g_pObj; while (pHeader) { DBG(("Zombiefy object |%lx| lMagic=%lx\n", pHeader, pHeader->lMagic)); switch (pHeader->lMagic) { case WINOLE_MAGIC: >>>>>>>>>>>> ReleasePerlObject(aTHX_ (WINOLEOBJECT*)pHeader); break; #### void ReleasePerlObject(pTHX_ WINOLEOBJECT *pObj) { dSP; HV *stash = SvSTASH(pObj->self); DBG(("ReleasePerlObject |%lx|", pObj)); if (!pObj) return; /* ReleasePerlObject may be called multiple times for a single object: * first by Uninitialize() and then by Win32::OLE::DESTROY. * Make sure nothing is cleaned up twice! */ if (pObj->destroy) { SV *self = sv_2mortal(newRV_inc((SV*)pObj->self)); /* honour OVERLOAD setting */ if (Gv_AMG(stash)) SvAMAGIC_on(self); DBG((" Calling destroy method for object |%lx|\n", pObj)); ENTER; SAVETMPS; if (SvPOK(pObj->destroy)) { /* $self->Dispatch($destroy,$retval); */ EXTEND(SP, 3); PUSHMARK(sp); PUSHs(self); PUSHs(pObj->destroy); PUSHs(sv_newmortal()); PUTBACK; perl_call_method("Dispatch", G_DISCARD); } else { /* &$destroy($self); */ PUSHMARK(sp); XPUSHs(self); PUTBACK; perl_call_sv(pObj->destroy, G_DISCARD); } FREETMPS; LEAVE; DBG((" Returned from destroy method for 0x%08x\n", pObj)); SvREFCNT_dec(pObj->destroy); pObj->destroy = NULL; } if (pObj->pEventSink) { DBG((" Unadvise connection |%lx|", pObj)); pObj->pEventSink->Unadvise(); pObj->pEventSink = NULL; } if (pObj->pDispatch) { if (pObj->flags & OBJFLAG_UNIQUE) { dPERINTERP; IUnknown *punk; // XXX check error? pObj->pDispatch->QueryInterface(IID_IUnknown, (void**)&punk); hv_delete(g_hv_unique, (char*)&punk, sizeof(punk), G_DISCARD); DBG((" hv_delete(%08x)", punk)); punk->Release(); } DBG((" Release pDispatch")); pObj->pDispatch->Release(); pObj->pDispatch = NULL; } if (pObj->pTypeInfo) { DBG((" Release pTypeInfo")); pObj->pTypeInfo->Release(); pObj->pTypeInfo = NULL; } if (pObj->pEnum) { DBG((" Release pEnum")); pObj->pEnum->Release(); pObj->pEnum = NULL; } if (pObj->destroy) { DBG((" destroy(%d)", SvREFCNT(pObj->destroy))); SvREFCNT_dec(pObj->destroy); pObj->destroy = NULL; } if (pObj->hashTable) { DBG((" hashTable(%d)", SvREFCNT(pObj->hashTable))); >>>>>>>>>>>>>>>> SvREFCNT_dec(pObj->hashTable); pObj->hashTable = NULL; } DBG(("\n")); } /* ReleasePerlObject */