diff options
| author | Steven Wilson <steven1170@zoho.eu> | 2019-11-05 12:12:35 +0000 |
|---|---|---|
| committer | Steven Wilson <steven1170@zoho.eu> | 2019-11-05 12:12:35 +0000 |
| commit | a2ec5eb1255af00a03961d25f3d643f63dc5a7a4 (patch) | |
| tree | fa963d6a4284c4d058cdc2ba8be359833e406809 /challenge-033 | |
| parent | 11a399aca6169d8ca634254d48a99328fffba237 (diff) | |
| download | perlweeklychallenge-club-a2ec5eb1255af00a03961d25f3d643f63dc5a7a4.tar.gz perlweeklychallenge-club-a2ec5eb1255af00a03961d25f3d643f63dc5a7a4.tar.bz2 perlweeklychallenge-club-a2ec5eb1255af00a03961d25f3d643f63dc5a7a4.zip | |
add week 33 task 1 solution
Diffstat (limited to 'challenge-033')
| -rw-r--r-- | challenge-033/steven-wilson/perl5/ch-1.pl | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/challenge-033/steven-wilson/perl5/ch-1.pl b/challenge-033/steven-wilson/perl5/ch-1.pl new file mode 100644 index 0000000000..25f3117ef8 --- /dev/null +++ b/challenge-033/steven-wilson/perl5/ch-1.pl @@ -0,0 +1,40 @@ +#!/usr/bin/env perl +# Author: Steven Wilson +# Date: 2019-11-05 +# Week: 033 + +# Task #1 +# Count Letters (A..Z) +# Create a script that accepts one or more files specified on the command-line and count the number of times letters appeared in the files. +# So with the following input file sample.txt +# The quick brown fox jumps over the lazy dog. +# the script would display something like: +# a: 1 +# b: 1 +# c: 1 +# ... +# x: 1 +# y: 1 +# z: 1 + +use strict; +use warnings; +use feature qw/ say /; + +my @files = @ARGV; +my %letters_count; + +for my $file (@files) { + open my $fh, '<', $file or die "Can't open < $file: $!"; + while ( !eof $fh ) { + my @letters = grep {/[[:alpha:]]/} split //, readline($fh); + for my $letter (@letters) { + $letters_count{ lc $letter } += 1; + } + } + close $fh; +} + +for my $letter ( sort keys %letters_count ) { + say "$letter: $letters_count{$letter}"; +} |
