http://www.perlmonks.org?node_id=839302


in reply to Re^5: sub BEGIN
in thread sub BEGIN

...which replaces the definition found in SOAP/Lite.pm

Hrm, your statement seems to assume an order of execution other than that manifested by the posted code (either that or SOAP::Lite defines its version of SOAP::Deserializer::typecast() in some weird way (which doesn't appear to be the case).

So that would seem to be a bug in the posted code as well (which makes me wonder if I'm missing something, but if so I still don't see it).

- tye        

Replies are listed 'Best First'.
Re^7: sub BEGIN (order)
by Anonymous Monk on May 10, 2010 at 20:36 UTC
    soap::Lite is very hard to understand and it seem to incoporate lot of other classes under it.
    In my limited module reading, I still do not see where SOAP::Deserializer::typecast is being defined. Since I cannot find them in cpan.org, I might as well wrote the sub as,
    sub anything::typecast { }
    ?? or does keyword typecast(other than actually doing the typecasting which I don't know why perl would need it in general case) mean something else for general module?

      Click SOAP::Lite then click the "Source" link near the top to get to Lite.pm. Search for "sub typecast" and then search backward for /^package/ and you'll find the "package SOAP::Deserializer;" line. Thus the "sub typecast" is where the original SOAP::Deserializer::typecast() is defined. And, no, "typecast" is not a special keyword. Search for uses of "typecast" elsewhere in that source code.

      I suspect (but haven't verified) that "they" expect you to "replace" the typecast() functionality by subclassing (inheritance) rather than how it is attempted in the root of this thread.

      - tye