in reply to EEPROM on i2c Real Time Clock Modules

if ( substr( $opt_a, 0, 2 ) == "0x" ) { $opt_a = hex($opt_a); }

Are you sure you want to use == here instead of eq? The former compares numbers, the latter compares strings. As written, setting $opt_a to 'b0011' would turn it into 720913. I don't think that's expected.

map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]