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.


In reply to Re: How to get binary value based on field value entered by hdb
in thread How to get binary value based on field value entered by rahularora

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.