Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re^2: Dynamically Changing Packages w/out Eval

by ikegami (Patriarch)
on Aug 24, 2009 at 13:41 UTC ( [id://790814]=note: print w/replies, xml ) Need Help??

in reply to Re: Dynamically Changing Packages w/out Eval
in thread Dynamically Changing Packages w/out Eval

A lot simpler and a lot less fragile:
my @overload = ('+' => sub { my $self = shift; my ($other, $info) = @_; # do some stuff }); eval "package $namespace; use overload \@overload; 1" or die $@;

Replies are listed 'Best First'.
Re^3: Dynamically Changing Packages w/out Eval
by betterworld (Curate) on Aug 24, 2009 at 14:13 UTC
    I thought the original question was how to avoid eval :)
      True, but he wanted to avoid eval "because it obfuscates the code". It's clearly the opposite here.

        I avoid eval out of habit. Even if you make sure that you don't eval user input and keep the evaluated code minimal, it's still annoying to debug warnings like "Argument isn't numeric at eval 2718, line 314".

        Though you're right that my code looks a bit obfuscated.

      You can't expect someone to read the OP

Log In?

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

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (3)
As of 2024-06-18 05:24 GMT
Find Nodes?
    Voting Booth?

    No recent polls found

    erzuuli‥ 🛈The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.