$templine starts undefined, but you add $temp to it. Do you want to concatenate $sid and
$sidtwobinder[1] ? Also, "sid 1" and "1" are different strings.
@sid is not needed, you can extract it from the left hand sides of the unpaired.
Just iterate over the list and check wheter the sid is the same as previously. If yes, concatenate, if not, start a new one.
#!/usr/bin/perl
use warnings;
use strict;
use feature qw{ say };
my @unpairedSidBinder = ( 'sid 1|FLPSDFFPS LLWFHISCL',
'sid 1|WIRTPPAYR YVNVNMGLK',
'sid 2|FLPSDFFPS LLWFHISCL',
'sid 2|FLPSDFFPS ELMNLATWV',
'sid 7|FLPSDFFPS ATVELLSFL',
'sid 7|VWIRTPPAY LLSFLPSDF',
'sid 9|VWIRTPPAY LLDTASALY',
'sid 9|FGRETVLEY PSDFFPSVR',
);
my @combined = ();
my $last = q();
for my $item (@unpairedSidBinder) {
my ($left, $right) = split /\|/, $item;
if ($left eq $last) {
$combined[-1] .= " $right";
} else {
push @combined, "$left|$right";
$last = $left;
}
}
say for @combined;
($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord
}map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,