in reply to Re: Re: Re: Re^2: NO PERL 6
in thread NO PERL 6

So, will this code die 50% of the time?

{ $type = ('hex','oct')[rand 2]; eval qq[ rule Perl::Literals::$type::number { {die 'this base no longer exists'} } ]; print 0o017; }

Replies are listed 'Best First'.
Re^7: NO PERL 6
by Elian (Parson) on Dec 10, 2002 at 23:06 UTC
    No, since the change won't make it out of the eval block, and the changes are done at runtime anyway. You need a use. The changes have to be in place at compile time to take effect.

      However, if the modifications to the parser are made in a BEGIN block, won't the changes go out of scope once the block is finished?

      Maybe some sort of new block (maybe PARSE) could be created, such that it acts like a BEGIN block, but changes made within the block do not go out of scope when the block is finished?

        That's why they get pushed out a level of scope.