Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: Automagic subroutines

by Limbic~Region (Chancellor)
on Jan 04, 2005 at 16:54 UTC ( [id://419298]=note: print w/replies, xml ) Need Help??


in reply to Automagic subroutines

rje,
As others have pointed out, there are already modules that do this. As revdiablo pointed out, there are ways to avoid using eval to dynamically create subs and this fully functional example allows them to be lvaluable.
package Cool; use strict; use warnings; sub new { my $class = shift; my $self = bless {}, $class; $self->_Init( @_ ); return $self; } sub _Init { my $self = shift; { no strict 'refs'; for my $method ( @_ ) { *{ $method } = sub :lvalue { $_[0]->{$method} }; } } } "That's cool man";
And here is a script that uses it:
#!/usr/bin/perl use strict; use warnings; use Cool; my $obj = Cool->new( qw(foo bar baz) ); $obj->bar = "A better way of doing this"; print $obj->bar, "\n";

Cheers - L~R

Replies are listed 'Best First'.
Re^2: Automagic subroutines
by rje (Deacon) on Jan 05, 2005 at 16:32 UTC
    Thanks LR!

    These are great counter-examples, because they give me a much-needed introduction on using typeglobs... which is something I've never used before.

    You guys are helping me understand Perl better. As well as giving me some good CPAN references. Thanks and keep up the good work!

    Rob

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (5)
As of 2024-04-24 07:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found