Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re^3: Griping about Typing

by tadman (Prior)
on Apr 19, 2002 at 18:51 UTC ( #160634=note: print w/ replies, xml ) Need Help??


in reply to Re: Re: Griping about Typing
in thread Griping about Typing

Okay, can anyone explain how that works? It actually parses, though the class is completely ignored, provided it is defined somewhere. Here's a quick example:

#!/usr/bin/perl -w use strict; use CGI; use LWP; my CGI $cgi = new CGI(); # Works my XYZ $cgi = new CGI(); # "No such class XYZ ..." my LWP $cgi = new CGI(); # Works, strangely enough
Nothing in the docs about that, at least under my.


Comment on Re^3: Griping about Typing
Download Code
Re: Re^3: Griping about Typing
by pdcawley (Hermit) on Apr 22, 2002 at 15:52 UTC
    It isn't quite ignored, but it only really does anything if you're using pseudo hashes and you've defined your the class using use fields, in which case, $CGI would be initialized as an arrayref with an appropriate hashref in the zeroth slot.
Re: Re^3: Griping about Typing
by Anonymous Monk on Sep 29, 2003 at 23:39 UTC
    Perl records this information, but does nothing (or very little) with it. Because it is recorded, the typesafety.pm and types.pm modules are able to use it. This kind of core hooks for extensibility via modules is a recurring pattern in Perl: overload.pm can intercept the definitions of constants and turn them into objects; attributes.pm handles cases where tags like :foo appear after variables or sub definitions (in cases where the tag isn't one of the built ins like :lvalue, :method, or the depricated :shared). This feature, like attributes, went through growing pains. It is undocumented because it is still experimental - the details of how and when it is used are up in the air, even though some experimental modules are using it now.

    The short of it is, use types.pm and/or typesafety.pm. http://perldesignpatterns.com/?TypeSafety has an intro to the idea of type safety and details about the Perl implementations. It quotes this thread heavily =) I hope this answers your question.

    -scott

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://160634]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (4)
As of 2014-11-27 20:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My preferred Perl binaries come from:














    Results (188 votes), past polls