aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Pankoff <ccntrq@screenri.de>2021-02-01 17:33:34 +0100
committerAlexander Pankoff <ccntrq@screenri.de>2021-02-01 17:33:34 +0100
commit3fa86e7eb1946c9a51fc70c2a5585f8bf9e449bb (patch)
treef21008f064f1d875cb19928f122738be64b9240f
parentac60bddb13f96402c3026283fe223388ed54fc27 (diff)
downloadperlweeklychallenge-club-3fa86e7eb1946c9a51fc70c2a5585f8bf9e449bb.tar.gz
perlweeklychallenge-club-3fa86e7eb1946c9a51fc70c2a5585f8bf9e449bb.tar.bz2
perlweeklychallenge-club-3fa86e7eb1946c9a51fc70c2a5585f8bf9e449bb.zip
add perl solution for wk-098 ch-1.pl
-rwxr-xr-xchallenge-098/alexander-pankoff/perl/ch-1.pl33
1 files changed, 33 insertions, 0 deletions
diff --git a/challenge-098/alexander-pankoff/perl/ch-1.pl b/challenge-098/alexander-pankoff/perl/ch-1.pl
new file mode 100755
index 0000000000..19294205aa
--- /dev/null
+++ b/challenge-098/alexander-pankoff/perl/ch-1.pl
@@ -0,0 +1,33 @@
+#!/usr/bin/env perl
+use v5.20;
+use utf8;
+use strict;
+use warnings;
+use feature qw(say signatures);
+no warnings 'experimental::signatures';
+
+{
+ my ( $FILE, @numbers ) = @ARGV;
+ say readN( $FILE, $_ ) for @numbers;
+}
+
+sub readN ( $file, $chars ) {
+ state $filehandles = {};
+
+ my $fh;
+ if ( $filehandles->{$file} ) {
+ $fh = $filehandles->{$file};
+ }
+ else {
+ open( $fh, '<', $file );
+ $fh->binmode( ':utf8' );
+ $filehandles->{$file} = $fh;
+ }
+
+ my $out;
+ while ( $chars-- && !$fh->eof ) {
+ $out .= $fh->getc;
+ }
+
+ return $out;
+}