Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re: recursive /eg fails

by stephen (Priest)
on Mar 27, 2002 at 09:15 UTC ( #154620=note: print w/ replies, xml ) Need Help??


in reply to recursive /eg fails

Tricky... I hate to risk crying wolf, but there may be a Perl bug going on here.

I'm assuming that this is the beginning stage of a japh?

Although I haven't solved the problem, I'm posting a slightly more untangled version of the code (think of it as a preemptive deobfuscation) in order to make the problem a bit clearer.

On perl 5.6.1 on Linux, this code returns "func MAIN returns func B returns 1+C(2)", when by intuition it should return "func MAIN returns func B returns 1+2". On perl 5.6.1 on Windows, the program coredumps.

use strict; print doFunc( "MAIN", "B(1)+C(2)" ); sub doFunc{ my ($theFunc, $rem) = @_; my $re = &get_re($rem); $rem =~ s/(\w+)\(($re)\)/&doFunc($1,$2)/eg; return "func $theFunc returns $rem"; } ## ## When we're called with the initial ## state, return "1|2". Otherwise, return ## our input, quotemeta'd. ## sub get_re { my ($in) = @_; if ($in eq "B(1)+C(2)") { return '1|2'; } else { return quotemeta($in); } }

stephen


Comment on Re: recursive /eg fails
Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (11)
As of 2014-10-20 10:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (75 votes), past polls