knoppix@Microknoppix:~$ perl -MList::Util=sum -E '
> @array = (
> [ qw{ 1 1 1 1 1 } ],
> [ qw{ 0 1 1 0 0 } ],
> [ qw{ 0 0 0 0 1 } ],
> [ qw{ 0 0 0 0 0 } ],
> [ qw{ 0 1 0 1 0 } ],
> [ qw{ 0 0 0 0 0 } ],
> );
> say qq{First all-zero row is @{ [
> ( grep { ! sum @{ $array[ $_ ] } } 0 .. $#array )[ 0 ] ] }};'
First all-zero row is 3
knoppix@Microknoppix:~$
####
knoppix@Microknoppix:~$ perl -MList::Util=sum,first -E '
> @array = (
> [ qw{ 1 1 1 1 1 } ],
> [ qw{ 0 1 1 0 0 } ],
> [ qw{ 0 0 0 0 1 } ],
> [ qw{ 0 0 0 0 0 } ],
> [ qw{ 0 1 0 1 0 } ],
> [ qw{ 0 0 0 0 0 } ],
> );
> say q{First all-zero row is },
> first { ! sum @{ $array[ $_ ] } } 0 .. $#array;'
First all-zero row is 3
knoppix@Microknoppix:~$
####
knoppix@Microknoppix:~$ perl -MList::Util=first -E '
> @array = (
> [ qw{ 1 1 1 1 1 } ],
> [ qw{ 1 0 0 -1 0 } ],
> [ qw{ 0 1 1 0 0 } ],
> [ qw{ 0 0 0 0 1 } ],
> [ qw{ 0 0 0 0 0 } ],
> [ qw{ 0 1 0 1 0 } ],
> [ qw{ 0 0 0 0 0 } ],
> );
>
> $found = first {
> $i = $_;
> $res = first {
> $array[ $i ]->[ $_ ] != 0
> } 0 .. $#{ $array[ $i ] };
> ! defined $res;
> } 0 .. $#array;
> say
> q{First all-zero row is -> },
> defined $found
> ? $found
> : q{none found};
> '
First all-zero row is -> 4
knoppix@Microknoppix:~$