Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re^2: Eliminating conditional code for GUI and text-mode operation

by gnosti (Friar)
on Dec 08, 2007 at 09:09 UTC ( #655812=note: print w/ replies, xml ) Need Help??


in reply to Re: Eliminating conditional code for GUI and text-mode operation
in thread Eliminating conditional code for GUI and text-mode operation

I'm thrilled to begin getting this... although some hours are going by...

As stand-alone code, this example produces the expected output. As a module (built with the h2xs boilerplate) make test fails with:

Tried to use 'TestOO'. # Error: Can't locate object method "new" via package "UI::Graphical" at /media/jroth/ecmd-dev/TestOO/blib/lib/TestOO.pm line 56.

Any ideas about this? I just pasted this stuff into the 'precompiled methods go here' indicator in the boilerplate.

Is there a reason why the children would inherit 'new' from the superclass in one context and not in another?

package UI; use Object::Tiny qw(dummy); sub hello {print "superclass hello\n"}; package UI::Graphical; @ISA = 'UI'; sub hello {print "make a window\n";} my $ui = UI->new; $ui->hello; $ui = UI::Graphical->new; $ui->hello; 1;


Comment on Re^2: Eliminating conditional code for GUI and text-mode operation
Download Code
Replies are listed 'Best First'.
Re^3: Eliminating conditional code for GUI and text-mode operation
by ikegami (Pope) on Dec 08, 2007 at 14:06 UTC
    Are you sure that's the code you ran? It should work. And it works for me.
    >perl 655812.pl superclass hello make a window

    use Object::Tiny qw(dummy);
    can be written as
    use Object::Tiny;
    but not as
    use Object::Tiny qw( ); or
    use Object::Tiny ( );
    You would get the error you showed if you did one of the latter two.

    Also, if you have no members, you can use
    $ui = 'UI'; instead of $ui = UI->new();, and
    $ui = 'UI::Graphical'; instead of $ui = UI::Graphical->new();.
    However, you'll probably need some members, so you might as well continue the way you are going.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (4)
As of 2015-07-30 01:07 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 (269 votes), past polls