My understanding is that you want ids as a comma separated list, for all ids used as the suffix to the one and only prefix as in $base below.
I have added two strings to the collection in order to filter out strings of no interest to you. Try this code:
use strict;
use warnings;
my @strings = (
"http://mysite/bbsui.jsp?id=dxpwd",
"http://mysite/bbsui.jsp?id=dxpsf",
"http://mysite/bbsui.jsp?id=sfpwd",
"http://somewhere.else.jsp?id=YOU-DO-NOT-WANT-THIS",
"http://mysite/bbsui.jsp?id=ds35e",
"http://somewhere.else.too?id=XXXXXXXXXXXXXXXXXXXX",
"http://mysite/bbsui.jsp?id=124536"
);
my $base = 'http://mysite/bbsui.jsp?id=';
my $pattern = "^\Q$base\E(.+)\$";
my @id = grep { $_ } map { $1 if /$pattern/ } @strings;
print "(" . join (',', @id) .")\n";
Prints the requested output:
(dxpwd,dxpsf,sfpwd,ds35e,124536)
|