diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2019-10-10 13:56:21 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-10-10 13:56:21 +0100 |
| commit | 642d98814bd2fa65d608433e588c0c0f105b6cb5 (patch) | |
| tree | e91106acd59e570b9041abae275df165a26f4e99 | |
| parent | 8b2f0f135f0ead942ab46fdd56fee7f57948b490 (diff) | |
| parent | 9e772b57a7be2297c53f41487b475d68f0ac8a52 (diff) | |
| download | perlweeklychallenge-club-642d98814bd2fa65d608433e588c0c0f105b6cb5.tar.gz perlweeklychallenge-club-642d98814bd2fa65d608433e588c0c0f105b6cb5.tar.bz2 perlweeklychallenge-club-642d98814bd2fa65d608433e588c0c0f105b6cb5.zip | |
Merge pull request #739 from mienaikage/challenge-029-1-p6
Add ch-1.p6 for challenge-029
| -rwxr-xr-x | challenge-029/daniel-mita/perl6/ch-1.p6 | 19 | ||||
| -rwxr-xr-x | challenge-029/daniel-mita/perl6/ch-2.p6 | 15 |
2 files changed, 29 insertions, 5 deletions
diff --git a/challenge-029/daniel-mita/perl6/ch-1.p6 b/challenge-029/daniel-mita/perl6/ch-1.p6 new file mode 100755 index 0000000000..a3ab062c3d --- /dev/null +++ b/challenge-029/daniel-mita/perl6/ch-1.p6 @@ -0,0 +1,19 @@ +#!/usr/bin/env perl6 +use v6; + +#| Expand braces (nesting NYI) +sub MAIN ( + *@phrase where * > 0, + --> Nil +) { + given @phrase.join: ' ' -> $str { + given $str.match: /^ ( .*? ) '{' ( .* ) '}' ( .*? ) $/ { + when .[1].so { + for .[1].split: ',' -> $split { + "$_[0]$split$_[2]".say; + } + } + default { $str.say } + } + } +} diff --git a/challenge-029/daniel-mita/perl6/ch-2.p6 b/challenge-029/daniel-mita/perl6/ch-2.p6 index 9a6365be70..d5c144a5f0 100755 --- a/challenge-029/daniel-mita/perl6/ch-2.p6 +++ b/challenge-029/daniel-mita/perl6/ch-2.p6 @@ -2,21 +2,26 @@ use v6; use NativeCall; -sub getrandom ( Buf, size_t, uint32 --> ssize_t ) is native {*} +my %*SUB-MAIN-OPTS = + :named-anywhere, +; #| 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, + UInt $bytes = 8, #= Number of random bytes (defaults to 8) + UInt :$flags = 0, + --> Nil ) { - given Buf.allocate($bytes) { + given Buf.allocate: $bytes { given .&getrandom: $bytes, $flags { when -1 { die sub strerror( int32 --> Str ) is native {*}( - cglobal( ('c', v6), 'errno', int32 ) ); + cglobal |( 'c', v6; 'errno'; int32 ) ); } when * < $bytes { die 'got fewer bytes than requested' } } .say; } } + +sub getrandom ( Buf, size_t, uint32 --> ssize_t ) is native {*} |
