use Errno qw(EINVAL); use Tie::Scalar;