wenn du die variable $temp nicht vorher schon einmal mit my deklariert hast, wird das unter use strict nicht funktionieren, da die variable nun einmal nicht deklariert ist.
local lokalisiert nur die variable in einen bestimmten block, wenn diese vorher schon existiert hat. wenn du am anfang der subroutine die variable einfach mit my deklarierst, lebt diese auch nur in der sub.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B