use v5.14; use strict; use warnings; use constant MASK => 0xF0; use constant VAL => 0x0F; sub get_val1 { VAL } sub get_val2() { VAL } sub get_mask { MASK } # Is & a function sigil or the bitwise and? say VAL & get_mask; say get_val1 & get_mask; say get_val1 & MASK; say get_val2 & MASK; say get_val1() & MASK;