Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re^4: Module provides both of functional interface and object-oriented one

by anazawa (Scribe)
on Feb 17, 2012 at 08:51 UTC ( #954452=note: print w/ replies, xml ) Need Help??


in reply to Re^3: Module provides both of functional interface and object-oriented one
in thread Module provides both of functional interface and object-oriented one

If a module looks as follows:

package Foo; @EXPORT_OK = qw(get_foo); sub new { # constructer } sub get { # for OO interface } sub get_foo { # for procedural interface } 1;
users may write as follows:
$o = Foo->new(); $o->get($key); # of cource, $value $o->get_foo($key); # what's this?
If users choose OO interface, they shouldn't be able to call 'get_foo' method. How can I solve this problem?


Comment on Re^4: Module provides both of functional interface and object-oriented one
Select or Download Code
Re^5: Module provides both of functional interface and object-oriented one
by Anonymous Monk on Feb 17, 2012 at 10:49 UTC

    If users choose OO interface, they shouldn't be able to call 'get_foo' method. How can I solve this problem?

    I'm not very well versed in Perl's OO, so someone please correct me if I'm wrong, but I don't think you can forbid users from calling it. The only thing you can do is throw an error on unexpected arguments.

    (There is a convention that a class's private methods' names begin with the underscore character, though.)

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (4)
As of 2014-12-29 04:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (184 votes), past polls