in reply to Remembering original order of an array
So before you find it easier to code, now you found it harder. As soon as you actually try to do anything more complex like, horrors, passing all the data to a subroutine instead of using globals, you find out that a set of unrelated related arrays is hard to handle.
You SHOULD use an single array of hashes! Instead of
you should have@foo = (1,4,76,2,5,1); @bar = ('sdf', 'wrtvdf', 'erteg', 'dhrthy','rtyfgrty'); @baz = ( 'aa', 'bb', 'cc', 'dd', 'ee', 'ff');
@data = ( {foo => 1, bar => 'sdf', baz => 'aa'}, {foo => 4, bar => 'wrtvdf', baz => 'bb'}, {foo => 76, bar => 'erteg', baz => 'cc'}, {foo => 2, bar => 'dhrthy', baz => 'dd'}, {foo => 5, bar => 'rtyfgrty', baz => 'ee'}, {foo => 1, bar => undef, baz => 'ff'}, # did you notice we had one le +ss @bar ? );
You can then pass this as a single entity, you can sort it using
and you don't have to worry that you forget to sort one of the arrays. Imagine what you'd have to do if you found out later that you need one more array/attribute !!!@sorted = sort {$a->{foo} <=> $b->{foo}} @data; #or @sorted = sort {$a->{bar} cmp $b->{bar}} @data;
|
|---|