Well, a seeker would create a subroutine like this:
@temp = map { s/^The // } @indata;
@sorted = sort {lc($a) cmp lc($b) } @temp;
I made a temp array so as not to keep the changes the substitution made.
Update: Actually, it *does not* alter the original values. Note that I assign the map s/// to @temp; @indata remains unchanged. This, from the manpage for map(type it in on this site's search box, for ease).
%hash = map { getkey($_) => $_ } @array;
is just a funny way to write
%hash = ();
foreach $_ (@array) {
$hash{getkey($_)} = $_;
}
Update (number two): My mistake. . . I did test the code, though I changed it slightly and didn't think to test it again. I'm sorry--I misread the manpage, and misinterpreted what they were doing. This code should do what I meant in the first place:
@temp = map {my $tmp; ($tmp = $_) =~ s/^The //; $tmp} @indata
|