in reply to Re: Bug in script, regex help req extreme urgent
in thread Bug in script, regex help req extreme urgent

tHANKS Don Coyote, actually i tried what i suggested again... and fortunately its doing what i want, but i dont have any idea how its doing its job, specially the substitution part? we say it to replace $string with ARGV1$1.
my $match = "(?<=module )$ARGV[2].*?([\\(;])"; print "$match"; my $filename = $ARGV[0]; open (INFILE, "<", $filename) or die "Failed to read file $filename +: $! \n"; $string = <INFILE>; close INFILE; $string =~ s/$match/$ARGV[1]$1/sg; print "$1";
The output is just what i want i.e.
script.pl f5 NEW OLD (?<=module )OLD.*?([\(;]) #> cat f5 //Verilog HDL for "tt", "hh" "functional" // if i write the word module here the script goofs up `timescale 1ps/10fs module NEW(Y, A, B ); output Y; input A; input B; endmodule
please help me in understanding this

Replies are listed 'Best First'.
Re^3: Bug in script, regex help req extreme urgent
by sid.verycool (Novice) on Mar 19, 2013 at 10:21 UTC
    Its solves my issue but fails in the scenario when i have  module this is in between OLD(A, B, Y);, i even want my script to change it to,   module this is in between NEW(A, B, Y); hence i tried doing this  (?<=module .*)$ARGV[2].*?([\\(;])"; which doesnt work and shell says <bold>Variable length lookbehind not implemented in regex; marked by <-- HERE in m/(?<=module .*)NEW.*?(\(;) <-- HERE / at script.pl line 23.</bold>. How can i implement this?