#!/usr/bin/perl -w # Strict use strict; use warnings; # Test code my $mask = 0b11001011; clear_bit($mask, 1); clear_bit($mask, 2); clear_bit($mask, 3); clear_bit($mask, 4); $mask = 0b11001000; set_bit($mask, 1); set_bit($mask, 2); set_bit($mask, 3); set_bit($mask, 4); # Subroutines sub clear_bit { my ($mask, $bit_index) = @_; printf "TFD> mask 0b%08lb\n", $mask; $mask &= ~(1 << ($bit_index - 1)); printf "TFD> mask 0b%08lb\n\n", $mask; } sub set_bit { my ($mask, $bit_index) = @_; printf "TFD> mask 0b%08lb\n", $mask; $mask |= (1 << ($bit_index - 1)); printf "TFD> mask 0b%08lb\n\n", $mask; }