in reply to recursive /eg fails
Sorry that I can't tell you why perl is behaving like this. '/o' shouldn't change the behavior at all (at least that's what I though) and $re doesn't change either.. Maybe perl messes up the namespaces when doing recursive calls using a regex? I really don't know..#!/usr/bin/perl -w use strict; print doFunc("MAIN", "B(1)+C(2)") . "\n"; sub doFunc { my ($theFunc, $rem) = @_; my $re = &get_re($rem); $rem =~ s/(\w+)\(($re)\)/&doFunc($1,$2)/eog; 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); } } exit (0);
|
|---|