#!/usr/bin/perl -- use strict; use warnings; my $Text="LOC100282561 [Source:RefSeq peptide;Acc:NP_001148941]"; my %VisitedLinks=(); #Searching for NCBI Entrez Gene IDs $_ = $Text; my @OriginalArray = /(LOC\d{9})/g; use DDS; Dump( \@OriginalArray ); for (my $i=0; $i < @OriginalArray; $i++) { if (!defined($VisitedLinks{$OriginalArray[$i]})) { $VisitedLinks{$OriginalArray[$i]} = 1; my $Link = EntrezGeneLinks($OriginalArray[$i]); my $Find = $OriginalArray[$i]; use DDS; Dump( $Link, $Find, $Text ); #~ $Text =~ s/$Find$/$Link/g; $Text =~ s/$Find/$Link/g; use DDS; Dump( $Text, ); } } print $Text,"\n"; sub EntrezGeneLinks { my ($ID) = @_; return ''.$ID.''; } __END__ $ARRAY1 = [ 'LOC100282561' ]; $VAR1 = 'LOC100282561'; $VAR2 = 'LOC100282561'; $VAR3 = 'LOC100282561 [Source:RefSeq peptide;Acc:NP_001148941]'; $VAR1 = 'LOC100282561 [Source:RefSeq peptide;Acc:NP_001148941]'; LOC100282561 [Source:RefSeq peptide;Acc:NP_001148941]