diff options
| author | Alexander Pankoff <ccntrq@screenri.de> | 2021-02-01 17:33:34 +0100 |
|---|---|---|
| committer | Alexander Pankoff <ccntrq@screenri.de> | 2021-02-01 17:33:34 +0100 |
| commit | 3fa86e7eb1946c9a51fc70c2a5585f8bf9e449bb (patch) | |
| tree | f21008f064f1d875cb19928f122738be64b9240f | |
| parent | ac60bddb13f96402c3026283fe223388ed54fc27 (diff) | |
| download | perlweeklychallenge-club-3fa86e7eb1946c9a51fc70c2a5585f8bf9e449bb.tar.gz perlweeklychallenge-club-3fa86e7eb1946c9a51fc70c2a5585f8bf9e449bb.tar.bz2 perlweeklychallenge-club-3fa86e7eb1946c9a51fc70c2a5585f8bf9e449bb.zip | |
add perl solution for wk-098 ch-1.pl
| -rwxr-xr-x | challenge-098/alexander-pankoff/perl/ch-1.pl | 33 |
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; +} |
