http://www.perlmonks.org?node_id=281984


in reply to Re: Forks.pm dilemma
in thread Forks.pm dilemma

...Or use a source filter ;)

Can you do source filters in 5.6.x? That would be a solution, simply only apply a source filter for source < 5.8.0 that replaces:

share( $x );
with:
share( \$x );
under the hood as it were. But I seem to remember source filters were introduced somewhere in the 5.7.x track?

And no, I don't want to invent my own API. Perl needs a good threads implementation. I'm just trying to make it easier to learn and prototype with it.

Liz

Replies are listed 'Best First'.
Re: Re: Re: Forks.pm dilemma
by Juerd (Abbot) on Aug 07, 2003 at 18:31 UTC

    Can you do source filters in 5.6.x?

    http://search.cpan.org/src/PMQS/Filter-1.29/README says:

    Before you can build the Source Filters you need to have the following
    installed on your system:
    
        * Perl 5.004 or better. 5.6.0 or better is recommended for Win32.
    

    The source filter can be as simple as (untested)

    package Filter::share; use Filter::Simple; FILTER_ONLY code => sub { s/( \b share \b \s* \(? )(?= \s* [\@\$%] )/$ +1\\/gxe };
    but IIRC, source filters don't work on eval()ed code. OTOH, why would anyone eval a share call... :)

    Juerd # { site => 'juerd.nl', plp_site => 'plp.juerd.nl', do_not_use => 'spamtrap' }