http://www.perlmonks.org?node_id=1032680


in reply to generate random number without using any built in function in perl?

OK, here's an example. It's not anything like a useful random number generator for cryptographic purposes, but looks fairly random at a first glance...

use v5.12; { my $seed = time; sub myrand { do { $seed *= $seed; $seed =~ s/[^0-9]//g; my $midpoint = int(length($seed) / 2); $seed = substr($seed, 0, $midpoint) . substr($seed, $midpo +int); $seed = substr($seed, 0, 9); } until ($seed > 10_000_000); my $r = reverse substr($seed, 0, 6); my $lim = @_ ? shift : 1; $lim * ($r/1_000_000); } } # 50 random numbers less than 10... say myrand(10) for 1..50;
package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name