I don't understand the purpose of the \K operator in the
/ ( .{9} [ATCG]{10} G \K G ) /gsx
regex in your code. It doesn't seem to have any effect except WRT $& and ${^MATCH}, which aren't used in the code:
Can you please give me some insight on this? Is \K simply a leftover from a previous version of the code?c:\@Work\Perl>perl -wMstrict -MData::Dump -le "my $line = 'AAAATTTTCCCCGGGGAAAGGxAAAACCCCTTTTGGGGAAAGGxTTTTAAAACCCCGGGGAAAGG' ; my %unique_data; my $count; while ( $line =~ / ( .{9} [ATCG]{10} G \K G ) /gsxp ) { print qq{>crispr_@{[ ++$count ]} '$1' ($&) (${^MATCH})} unless $unique_data{$1}++; } ;; dd \%unique_data; " >crispr_1 'AAAATTTTCCCCGGGGAAAGG' (G) (G) >crispr_2 'AAAACCCCTTTTGGGGAAAGG' (G) (G) >crispr_3 'TTTTAAAACCCCGGGGAAAGG' (G) (G) { AAAACCCCTTTTGGGGAAAGG => 1, AAAATTTTCCCCGGGGAAAGG => 1, TTTTAAAACCCCGGGGAAAGG => 1, }
Give a man a fish: <%-{-{-{-<
In reply to Re^2: unique sequences
by AnomalousMonk
in thread unique sequences
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |