linda w twaxvptwszvtlinxorg think im close figuring program created situation seems break perls oo ancestormethod lookup machinery taking reference nonpackagelocal method corrupts perls oo baseclass method lookup note reference used call method simply referencing even scope generates error short description start derived class trying call parent class method point derived class create expression maybe assigned var used initialize array expression reference method parent class ie basemethod expression may printed otherwise unused _may_ immediately go scope reference _legal_ attempt use method fails found type message parental method disabledbyreference calls package method also fail even though may previously worked also demonstrated attached example packagelocal method disp_fields called successfully main shortly object creation method fails called method handle_key reference use timesense execution syntactic placement source attached program mostly debugging code ive attempted make code generate sufficient output explicitly identify problem four external packages used none required duplicate problem clarify example modules referenced purpose inclusion 1 carp necessary dump callback tracebacks consistency checks 2 exporter used debug code export debug routines 3 strict used verify use catchable proscribed problems 4 base optional preferred replacement explicit declaration isa example code attached english description code problem follows start 2 classes main one parentclass containing two identical datums _field_one _field_two initialized new readonly accessibility isomorphic accessor functions field_one field_two using helper routine _accessor_helper second class derivedclass one datum _field_three also readonly accessibility accessor function field_three uses accessor function field_one field_two derivedclass uses three parents classes field_one field_two _accessor_helper derivedclass handle_key method called userkeyboard input demonstrate problem five keys handled q quit 1 2 3 call corresponding accessor methods field_one field_two field_three calls derivedclass method disp_fields displays results three data accessor functions field_three located derivedclass fields _one _two parentclass two fields accessed identically derivedclass input keys 1 2 explicitly checkedfor ifelsif clause keys use anon subroutine check_if_can_then_call key eq 1 check_if_can_then_callone elsif key eq 2 check_if_can_then_calltwo check_if_can_then_call checks object requested method calls method check_if_can_call sub meth stringbased method name scanmeth method smethod use perl oo machinery call nb uses stringbased name method access statement calling thats pretty much methods field_one field_two isomorphic identical except names perls oo calling mechanism breaks trying call field_two object reference printed field_one field_two valid references blessed hash type derivedclass perl claims cases object referred desired method case field_two true program dies message undefined subroutine derivedclassfield_two called addition perls oo lookup mechanism failing perls lookup field_two inconsistent indeterminate experience language translator producing undocumented indeterminate output usually bad thing havent able find reference indicating language usage illegality wrt language definition documentation indicator problem value used method field_two changes although appears designed truefalse testing appears print coderef tested method valid object reference one method named field_two would expect coderef value main object created derivedclassnew references classes methods printed followed sdisp_fields disp_fields prints values fields one two three also coderefs accessor functions believe coderef valid _specific_ classmethod remain constant given objectreference least context problem coderefs accessors also printed called singleaccessor cases called singly value field_threes coderef stays one field_three accessor program true field_two one accessor method named field_two program coderef changes called main called method shandle_key would seem another problem coderef field_two constant undef null method doesnt exist ie would false isnt case root bug seems perl creating 2nd bogus coderef method handle_key code exists print value field_two however reference gone scope perl saves confuses real field_two instead calling real field_two method exists work like field_one perl says calls unrelated dummy error routine instead correct field_two usefulness taking reference nonexistent local method questionable subsequent oocall mechanism failure result create reference nonexistent routine function method still nonexistent execution time reference return undef examined pointer runtime specified errorroutine valid usage might runtime program autoconfiguration based existence different sets functions included libraries library modules nonloaded routine return address null undef referenced would equivalent runtime loader patching function call table runtime filling undefined routines null user program would check reference validity nonnull trying use indirect call isnt present program could alter behavior dynamically runtime windows irix used functionality though ive never seen used well supported linux comments yeah bug go ahead submit via perbug l wed 06 aug 2008 200458 0700 broken perl ooparentmethod call