Data::Lock makes the specified variable immutable like Readonly. Unlike Readonly which implements immutability via tie, Data::Lock makes use of the internal flag of perl SV so it imposes almost no penalty. Like Readonly, Data::Lock locks not only the variable itself but also elements therein. You can Data::Lock objects as well.