in reply to Problem matching a backslash in a regular expression

Here is the data and code:-
create_clock -name ldtclock -period 60 create_clock -name mxuclock -period 20 set_input_clock 50 -rise -clock "ldtclock" \ find(port,"mxi_port") set_input_clock 40 -fall -clock "mxuclock"\ find(port,"mxu_port")
so if set_input_clock is 40 but the clock is 20 so I have to make it 0.
while(<file>) { if (/create_clock\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)*/ ) { $CLK1{$2}= $4; print clk_file ; elsif (/set_input_clock\s+(\d+)\s+(\S+)\s+(\S+)\s+\"(\w+)\"\s+(\S+)*/ +) { $d =$1; $c =$4; if ($delay < 0) { print clk_file "set_input_clock 0 $2 $3 $4 $5 \n"; next; } if (exists $CLK{$c}) { if ($CLK{$c}*0.95 < $d) { printf clk_file "set_input_clock %.6f $2 $3 $4 $5 \n",$C +LK{$c}*0.5; } else{print clk_file;} }