#!/usr/bin/perl
# Idiom #310 Fill array with random bytes
my $n = 20;
my $bytestring;
foreach my $i (0 .. $n*8 - 1) {
}
my $i = 0;
foreach my $c ( split //, $bytestring ) { my $bytes_in_binary = unpack 'B*', $c; printf "%4d %s\n", ++$i, $bytes_in_binary; }
printf "Length of bytestring in bytes: %d\n", length $bytestring; vec($bytestring, $n*8, 1) = 1; printf "Length after extending by one bit: %d\n", length $bytestring;
IyEvdXNyL2Jpbi9wZXJsCgojIElkaW9tICMzMTAgRmlsbCBhcnJheSB3aXRoIHJhbmRvbSBieXRlcwoKbXkgJG4gPSAyMDsKCm15ICRieXRlc3RyaW5nOwpmb3JlYWNoIG15ICRpICgwIC4uICRuKjggLSAxKSB7CiAgICB2ZWMoJGJ5dGVzdHJpbmcsICRpLCAxKSA9IHJhbmQoMik7Cn0KCm15ICRpID0gMDsKZm9yZWFjaCBteSAkYyAoIHNwbGl0IC8vLCAkYnl0ZXN0cmluZyApIHsKICAgIG15ICRieXRlc19pbl9iaW5hcnkgPSB1bnBhY2sgJ0IqJywgJGM7CiAgICBwcmludGYgIiU0ZCAgJXNcbiIsICsrJGksICRieXRlc19pbl9iaW5hcnk7ICAgIAp9CgpwcmludGYgIkxlbmd0aCBvZiBieXRlc3RyaW5nIGluIGJ5dGVzOiAlZFxuIiwgbGVuZ3RoICRieXRlc3RyaW5nOwp2ZWMoJGJ5dGVzdHJpbmcsICRuKjgsIDEpID0gMTsKcHJpbnRmICJMZW5ndGggYWZ0ZXIgZXh0ZW5kaW5nIGJ5IG9uZSBiaXQ6ICVkXG4iLCBsZW5ndGggJGJ5dGVzdHJpbmc7CnByaW50ZiAiQmluYXJ5IHZhbHVlIG9mIGxhc3QgYnl0ZTogJXNcbiIsIHVucGFjayAnYionLCBzdWJzdHIgJGJ5dGVzdHJpbmcsIC0xLCAxOwoK