in reply to Re: Find Replace text with list
in thread Find Replace text with list

How could I qw each line of file ?
@lines=<FILE>; my $t = qw (@lines)
not working ?

Replies are listed 'Best First'.
Re^3: Find Replace text with list
by Anonymous Monk on Feb 08, 2011 at 07:27 UTC
      Ok sorry for an unclear question here my problems I have 3 files : source.txt, target.txt and data. Data file contain 2 column separate by :, example for code below is /hang:code1 /hung:code2 /hong:code3 then source.txt is file text that I want to process it, I need to read all lines and compare to the data file, the source.txt is guarantee have code such as \hang \hung \hing etc (left side code from data file) then those code are replace by code1, code2 etc and write to target file ( target.txt)
      #!/usr/bin/perl use strict; use warnings; my $filename = 'data'; my $sfilename = 'source.txt'; my $tfilename = 'target.txt'; open(DFILE, $filename) or die "Could not read from $filename, program +halting."; open(SFILE, $sfilename) or die "Could not read from $filename, program + halting."; open(TFILE, "> $tfilename") || die("Cannot Open File"); while(my $SBR=<DFILE>) { my @fields = split(':', $SBR); my $rRegex = qr/$fields[0]/; my $Regexr = qr/$fields[1]/; for my $s (qw(/hang /hung /hing /heng)) { #here I need read it + as a source file, compare to data file if ($s =~ $rRegex){ print TFILE "$fields[1] "; # then write it to target file } } } close DFILE; close SFILE; close TFILE;
Re^3: Find Replace text with list
by roboticus (Chancellor) on Feb 08, 2011 at 11:07 UTC

    wa2nlinux:

    You don't need to. I used qw just for making the example. Perhaps I should've written it like this:

    #!/usr/bin/perl use strict; use warnings; my $r = "ab+c*d"; my $rRegex = qr/$r/; while (my $t = <DATA>) { if ($t =~ $rRegex) { print "MATCH: $t\n"; } } __DATA__ abcd aabbbd acccd dbca

    ...roboticus

    When your only tool is a hammer, all problems look like your thumb.