http://www.perlmonks.org?node_id=1065065


in reply to regex backreference

Perhaps the following will be helpful:

use strict; use warnings; my %seen; while (<DATA>) { !$seen{ $. . $1 }++ and print "Line $.: $1\n" while /(\b\w{3}\b)(?=.*\1)/g; } __DATA__ foofoo foo foo foo bar foo foo bar foo bar foooof foo oof foo and bar foo foo and and bar bar foo and bar foo and bar and or and or say or say or say or say

Output:

Line 2: foo Line 3: foo Line 4: foo Line 4: bar Line 8: foo Line 8: and Line 8: bar Line 9: foo Line 9: and Line 9: bar Line 10: and Line 10: say