sub demerphq_luhn{ my($r,$x,$d)="".reverse$_[0];$r=~s/(\d)\D*(\d)?/$x+=$1;$2&&($d.=$2*2)/ge;$d=~s/(\d)/$x+=$1/ge;$x%10<1 }