http://qs321.pair.com?node_id=594092


in reply to Can anyone simplify this code

Hi, Try like this,

TIMTOWTDI

my $word="test"; while(<DATA>) { next if !/$word/i; while(/\b($word)\b/gi) { my $pre = $`; my $col; ($pre eq "") ? ($col = 0):($col = split/\s+/, $pre); print "The word repeated in Line ".$.." and in column ".++$col +."\n"; } } __DATA__ This is a test from tester okay nothing message test center test test in proress ... test one test two __END__ Output as: ---------- The word repeated in Line 1 and in column 4 The word repeated in Line 3 and in column 2 The word repeated in Line 3 and in column 4 The word repeated in Line 4 and in column 1 The word repeated in Line 4 and in column 5 The word repeated in Line 4 and in column 7

Updated

Regards,
Velusamy R.


eval"print uc\"\\c$_\""for split'','j)@,/6%@0%2,`e@3!-9v2)/@|6%,53!-9@2~j';

Replies are listed 'Best First'.
Re^2: Can anyone simplify this code
by Anonymous Monk on Jan 11, 2007 at 12:27 UTC
    Hi Velusamy,
    Thanks a lot. But There is some problem in the output...
    I made a small change in your code
    <code> ($pre eq "") ? ($col = 0):($col = split/\s+/, $pre); <code> Now its giving proper output.
    The word repeated in Line 1 and in column 4
    The word repeated in Line 3 and in column 2
    The word repeated in Line 3 and in column 4
    The word repeated in Line 4 and in column 1
    The word repeated in Line 4 and in column 5
    The word repeated in Line 4 and in column 7
    Thanks