in reply to How to get binary value based on field value entered
Here is another solution based on map and join:
use strict; use warnings; my @fields = ( 1, "", undef, "0", "blah", 5 ); my $output = join "", map { length($_) ? 1 : 0 } @fields[0..7]; print "$output\n";
map allows you to apply the test for a field being blank to each element of your fields array. I have used length but you can plug in any other test you deem appropriate. map will in this case return an array of 0s and 1s which is then joined into a string.
From your question it seems that you want to get an answer of length 8, so I have expanded @fields by two (blank) fields using @fields[0..7]. If I mis-read this part of your question, just remove the [0..7] bit.
|
|---|