in reply to Short Circuit Operator and Hash Assignment

Just a side comment:

$val = int(rand($ulmt-1)+1);  # map range to (1..ulmt)

This does not do what you claim in your comment. Either change your comment to:

# map range to (1..(ulmt-1))

or change your code to:

$val = int(rand($ulmt)+1);

dave