Edward WIJAYA wrote:
> Dear John,
> 
> Thanks so much for your life saving response.
> There are one minor issue I still couldn't solve.
> 
> It is the fact that when the bounded region marked
> by the array may occur more than once.
> (See example no. 7 and 8 in my code below)
> 
> To disambiguate the situation, I can give the array that
> comes along with the index.
> 
> I tried to modify your code below to handle
> the matters. But I still cannot solve it.
> I think I'm almost there but not quite yet.
> 
> Can you advice, how can I go about it?
> Thanks so much beforehand. Really hope to hear
> from you again.
> 
> __BEGIN__
> my $t1 ='CCCATCTGTCCTTATTTGCTG';  my @ar1 = qw(ATCTG-3 ATTTG-13);
> my $t2 ='ACCCATCTGTCCTTGGCCAT';   my @ar2 = qw(CCATC-2);
> my $t3 ='CCACCAGCACCTGTC';        my @ar3 = qw(CCACC-0 CCAGC-3 GCACC-6);
> my $t4 ='CCCAACACCTGCTGCCT';      my @ar4 = qw(CCAAC-1 ACACC-4);
> my $t5 ='CTGGGTATGGGT';           my @ar5 = qw(GTATG-4 TGGGT-1);
> my $t6 = 'AGGAACTTGCCTGTACCACAGGAAG'; my @ar6 = qw( CAGGA-18 AGGAA-19 );
> 
> #The above example should yield the same result as previously
> 
> # These two examples below are the 'ambiguous' cases.
> 
> my $t7 = 'CAGGACTTGCCTGTACCACAGGAAG'; my @ar7 = qw( CAGGA-18  );
> my $t8 = 'CAGGATTTGAGGAAGTACCACAGGAAG'; my @ar8 = qw( CAGGA-18 AGGAA-19 );
> 
> # Answer 7 -- CAGGACTTGCCTGTACCA[CAGGA]AG   Instead of -- 
> [CAGGA]CTTGCCTGTACCACAGGAAG
> # Answer 8 -- CAGGATTTGAGGAAGTACCA[CAGGAA]G  Instead of -- 
> [CAGGA]TTTG[AGGAA]GTACCACAGGAAG
> 
> 
> print put_bracket_jk_idx($t8,[EMAIL PROTECTED]),"\n";
> 
> sub put_bracket_jk_idx {
>     my ( $str, $ar ) = @_;
> 
>     for my $subs ( @$ar ) {
> 
>          my ($sb,$id) = split("-",$subs);
>          print "$sb $id\n";
> 
>         if ( substr( $str, $id ) =~ /$subs/i ) {
                                       ^^^^^

>             $id += $-[ 0 ];
>             substr( $str, $id, length $subs ) =~ tr/A-Z/a-z/;
                                        ^^^^^
You should be using $sb instead of $subs.

>             }
>         }
>     $str =~ s/([a-z]+)/[\U$1\E]/g;
> 
>     return $str;
>     }
> 
> 
> print "\n";


John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to