#!/use/bin/perl use strict; use warnings; sub udiv64 { my ($a, $b) = @_; return 0 if $b > $a; my $c = $a >> 1; my $d = do { use integer; $c / $b }; my $e = $a - (do { use integer; $d * $b } << 1); ($d << 1) + do { use integer; $e / $b } } use Devel::Peek; Dump udiv64(10_000_000_000_000_000_011, 10); Dump udiv64(10_000_000_000_000_000_011, 1)