Perl version

Modules

  • ABCDE
  • FGHIL
  • MNOPS
  • TUX

quotemeta

Perl 5 version 12.3 documentation
Recently read

quotemeta

  • quotemeta EXPR

  • quotemeta

    Returns the value of EXPR with all non-"word" characters backslashed. (That is, all characters not matching /[A-Za-z_0-9]/ will be preceded by a backslash in the returned string, regardless of any locale settings.) This is the internal function implementing the \Q escape in double-quoted strings.

    If EXPR is omitted, uses $_ .

    quotemeta (and \Q ... \E ) are useful when interpolating strings into regular expressions, because by default an interpolated variable will be considered a mini-regular expression. For example:

    1. my $sentence = 'The quick brown fox jumped over the lazy dog';
    2. my $substring = 'quick.*?fox';
    3. $sentence =~ s{$substring}{big bad wolf};

    Will cause $sentence to become 'The big bad wolf jumped over...' .

    On the other hand:

    1. my $sentence = 'The quick brown fox jumped over the lazy dog';
    2. my $substring = 'quick.*?fox';
    3. $sentence =~ s{\Q$substring\E}{big bad wolf};

    Or:

    1. my $sentence = 'The quick brown fox jumped over the lazy dog';
    2. my $substring = 'quick.*?fox';
    3. my $quoted_substring = quotemeta($substring);
    4. $sentence =~ s{$quoted_substring}{big bad wolf};

    Will both leave the sentence as is. Normally, when accepting string input from the user, quotemeta() or \Q must be used.