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.
In reply to Re: move all 0s in an array to the beginning keeping other elements order same
by GrandFather
in thread move all 0s in an array to the beginning keeping other elements order same
by anilmwr
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |