in reply to sorting of two perl arrays

Do your array indices matter to you? Probably not. Perl lets you ignore them.

What matters is that each item in @b is the PRIORITY OF the item in @a. To remember this, use a hash.

my %priority_of; @priority_of{@a} = @b; my @a_sorted_by_priority = sort { $priority_of{$a} <=> $priority_of{$b} } @a;

Efficiency experts may shudder at the hash lookups inside the sort block, but I say clarity first. Perl code can express what you care about. At a later stage it can be optimized.

Speaking of clarity, the names @a and @b don't really express what you are thinking about. I have replaced @b with %priority_of. What kind of thing is listed in @a?