in reply to move all 0s in an array to the beginning keeping other elements order same
I guess you didn't in fact try that code because it doesn't actually run. With Perl version 5.16 I get an error like Not an ARRAY reference at test.pl line 6..
I'd tend to write something like:
#!user/bin/perl use warnings; use strict; my @array = (1, 2, 3, 4, 2, 1, 2, 0, 1, 0, 0); my @newArray = grep{!$_} @array; push @newArray, grep {$_} @array;
which is succinct but reasonably clear. It makes two grep passes through the array so it could be improved if you are dealing with very large arrays that cause a speed or memory issue, but otherwise go with clarity for the win.
|
|---|