Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
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 avoiding work at the Monastery: (8)
As of 2015-07-05 20:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (68 votes), past polls