aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2019-10-08 14:12:40 +0100
committerGitHub <noreply@github.com>2019-10-08 14:12:40 +0100
commit9d04c6ee269774a082b504debb39073cf28da678 (patch)
treef5cb766ce2016725b65c24c4f97c36737caf9c2f
parentb390e188f6192210aabc3038d6b47aaf88b01ee7 (diff)
parent80e552a9e09e819719228cd8c23ef8c92506bcb1 (diff)
downloadperlweeklychallenge-club-9d04c6ee269774a082b504debb39073cf28da678.tar.gz
perlweeklychallenge-club-9d04c6ee269774a082b504debb39073cf28da678.tar.bz2
perlweeklychallenge-club-9d04c6ee269774a082b504debb39073cf28da678.zip
Merge pull request #730 from mienaikage/challenge-029-2-p6
Add ch-2.p6 for challenge-029
-rwxr-xr-xchallenge-029/daniel-mita/perl6/ch-2.p622
1 files changed, 22 insertions, 0 deletions
diff --git a/challenge-029/daniel-mita/perl6/ch-2.p6 b/challenge-029/daniel-mita/perl6/ch-2.p6
new file mode 100755
index 0000000000..9a6365be70
--- /dev/null
+++ b/challenge-029/daniel-mita/perl6/ch-2.p6
@@ -0,0 +1,22 @@
+#!/usr/bin/env perl6
+use v6;
+use NativeCall;
+
+sub getrandom ( Buf, size_t, uint32 --> ssize_t ) is native {*}
+
+#| http://man7.org/linux/man-pages/man2/getrandom.2.html
+sub MAIN (
+ UInt $bytes = 8, #= Number of random bytes (defaults to 8)
+ UInt $flags = 0,
+) {
+ given Buf.allocate($bytes) {
+ given .&getrandom: $bytes, $flags {
+ when -1 {
+ die sub strerror( int32 --> Str ) is native {*}(
+ cglobal( ('c', v6), 'errno', int32 ) );
+ }
+ when * < $bytes { die 'got fewer bytes than requested' }
+ }
+ .say;
+ }
+}