in reply to constant and eval (are they enemies?)

You have to make it return a true value upon success. eval "use constant CONST1 => 5; 1" or warn $@; I'd suggest not using eval though. You can manually do what the use statement does for you.
require constant; constant->import(CONST1 => 5);
Cheers,
-Anomo

Replies are listed 'Best First'.
Re: Re: constant and eval (are they enemies?)
by tune (Curate) on May 22, 2002 at 19:59 UTC
    Thanks. I cannot use the import() thing, because I parse the constant name and the value from a file. That's why I have to use 'eval'...

    --
    tune

      Why can't you do
      require constant; constant::->import($name => $value);
      ?

      -Anomo
        That's happening at runtime, not compile time. While you could put a BEGIN block around it, the code I posted elsewhere in this thread copies the method of the module, without even having to invoke the overhead of the module.

        -- Randal L. Schwartz, Perl hacker