in reply to SOLVED - Can a better regex person than me tell me how to fix this?

on windows paths can have backslashes, which are regular expressions metacharacters, so quotemeta ie /^(?:\Q$std_dir\E)/
  • Comment on Re: Can a better regex person than me tell me how to fix this? (quotemeta)

Replies are listed 'Best First'.
Re^2: Can a better regex person than me tell me how to fix this? (quotemeta)
by Anonymous Monk on Dec 06, 2013 at 03:36 UTC
    use re 'debug'; my $fudge = '.*'; my $judge = '\d'; print "$fudge eq $judge = @{[int( $fudge eq $judge )]}\n"; $judge =~ /$fudge/; $judge =~ /\Q$fudge\E/; __END__ .* eq \d = 0 Compiling REx ".*" Final program: 1: STAR (3) 2: REG_ANY (0) 3: END (0) anchored(MBOL) implicit minlen 0 Matching REx ".*" against "\d" 0 <> <\d> | 1:STAR(3) REG_ANY can match 2 times out of 214 +7483647... 2 <\d> <> | 3: END(0) Match successful! <<<<<<<<<<<<<<< <<<<<<<<<<<<<<< Compiling REx "\.\*" Final program: 1: EXACT <.*> (3) 3: END (0) anchored ".*" at 0 (checking anchored isall) minlen 2 Guessing start of match in sv for REx "\.\*" against "\d" Did not find anchored substr ".*"... Match rejected by optimizer <<<<<<<<<<<<<<< <<<<<<<<<<<<<<< Freeing REx: ".*" Freeing REx: "\.\*"
Re^2: Can a better regex person than me tell me how to fix this? (quotemeta)
by boftx (Deacon) on Dec 06, 2013 at 04:02 UTC

    Thanks! That seems to be the fix based on some quick and dirty testing.

    It helps to remember that the primary goal is to drain the swamp even when you are hip-deep in alligators.