in reply to Re: File Sorting Question
in thread File Sorting Question

Yes, it does modify the original values, because the assignment to @temp occurs after the map, and after $_ has been changed in place for each element of @indata.

Furthermore, substitution returns true or false; it does not return the modified string. Therefore, @temp will be a list of null strings and 1s, and @sorted will be a sorted list of null strings and 1s.

Please test your code before posting it, or at least before contradicting a helpful correction from another Perl Monk.

#!/usr/local/bin/perl -w $, = "\n"; chomp(@indata = <DATA>); @temp = map { s/^The // } @indata; @sorted = sort {lc($a) cmp lc($b) } @temp; print @indata, "---", @temp, "---", @sorted, "---\n"; __DATA__ The Dog A Bird The Cat Lots of Fish
And the output:
Dog A Bird Cat Lots of Fish --- 1 1 --- 1 1 ---