in reply to Regexp question on combining white spaces and comparisons

my @outputlist = join s/(^\s+|\s+$)//g, $output;

I, too, am puzzled by what you are trying to achieve overall. But the particular statement quoted above is problematic. Because the prototype (see Prototypes in perlsub) of join is  $@

c:\@Work\Perl>perl -e "print prototype 'CORE::join'" $@
the  s/(^\s+|\s+$)//g expression (which does a substitution on the  $_ default scalar) is evaluated in scalar context and the success or failure of the substitution (1 or empty string, respectively) | number of substitutions is returned and used as the join string (update: i.e., as the result of the EXPR in join EXPR,LIST).
c:\@Work\Perl>perl -wMstrict -MData::Dump -le "my $output = 'something or other'; ;; $_ = ' who knows what '; my @outputlist = join s/(^\s+|\s+$)//g, $output; dd \@outputlist; " ["something or other"]
But that doesn't matter because there is only one item in the join list, namely $output, so the result of the joining EXPR is never used.
c:\@Work\Perl>perl -wMstrict -MData::Dump -le "my $output = 'something or other'; ;; $_ = ' who knows what '; my @outputlist = join 'anything at all', $output; dd \@outputlist; " ["something or other"]

Update: Here's the result of an experiment showing what happens if there is more than one string to be join-ed:

c:\@Work\Perl>perl -wMstrict -MData::Dump -le "my $output = 'something or other'; ;; $_ = ' who knows what '; my @outputlist = join s/(^\s+|\s+$)//g, $output, 'hoo', 'ha'; dd \@outputlist; print qq{default scalar after s///: '$_'}; " ["something or other2hoo2ha"] default scalar after s///: 'who knows what'
In any event, there will never be more than one element in the  @outputlist array.


Give a man a fish:  <%-(-(-(-<