Re: special chars as scalar inside regex



Rob Benton wrote:

I've got a problem I think there may be a straight-forward solution to that I just don't know. I have a program that reads a variable-length input file. And the field delimiter of that file is given as an argument. The problem is something like pipe "|" might show up as the delimiter. So is there a way to quote/protect that in the split() function without it being interpreted as a regex special character?

Something like:

./myprog.pl "|"

myprog.pl:
---------
my $delimiter = $ARGV[0];
my @fields = split(/$delimiter/, $line);


This is a very simplified example. Hope that makes sense.

perldoc -f quotemeta

my @fields = split /\Q$delimiter\E/, $line;




John
--
Perl isn't a toolbox, but a small machine shop where you
can special-order certain sorts of tools at low cost and
in short order. -- Larry Wall
.



Relevant Pages

  • Re: special chars as scalar inside regex
    ... Rob Benton wrote: ... I have a program that reads a variable-length input file. ... And the field delimiter of that file is given as an argument. ... So is there a way to quote/protect that in the splitfunction without it being interpreted as a regex special character? ...
    (perl.beginners)
  • special chars as scalar inside regex
    ... I've got a problem I think there may be a straight-forward solution to that I just don't know. ... I have a program that reads a variable-length input file. ... And the field delimiter of that file is given as an argument. ...
    (perl.beginners)