The version above uses the three-element form of open() (available in perl 5.6.0 and later), which is a bit safer than the two-element form. open(FH, '<', $filename) is the same as open(FH, "<$filename"). The problem is that $filename could have a '<' at the beginning, thus changing the meaning of the open(). The three-element form avoids this problem.
And yes, $c and $b need to have special regex characters escaped. (As broquaint said, variables like $c and $b have special meanings and should be avoided, but let's ignore that for the moment). If '/' is your only problem character, you can use the 'choose your own quotes' feature of Perl's regexen, such as s!$c!$b!g. In this case, the regex substitution will use '!' as a delimiter instead of '/'.
----
I wanted to explore how Perl's closures can be manipulated, and ended up creating an object system by accident.
-- Schemer
Note: All code is untested, unless otherwise stated
In reply to Re: Re: Re: question on sed
by hardburn
in thread question on sed
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |