my (@even, @odd); push @{ $_ % 2 ? \@odd : \@even }, $_ for split /,/, $text; #### my (@even, @odd); my $i = 0; push @{ $i++ % 2 ? \@odd : \@even }, $_ for split /,/, $text; #### my @field = split /,/, $text; my (@even, @odd) = @field[ map { $_, $_ + @field / 2 } 0 .. ( @field / 2 ) - 1 ];