From c21c42264b9e202cde1fde5f040f6df023c4ea4b Mon Sep 17 00:00:00 2001 From: lakpatashi Date: Wed, 14 Apr 2021 16:18:28 +0530 Subject: Finished challenge-004 with perl --- challenge-004/lakpatashi/README | 1 + challenge-004/lakpatashi/perl/ch-1.pl | 10 +++++++ challenge-004/lakpatashi/perl/ch-2.pl | 46 +++++++++++++++++++++++++++++++++ challenge-004/lakpatashi/perl/inputFile | 10 +++++++ 4 files changed, 67 insertions(+) create mode 100644 challenge-004/lakpatashi/README create mode 100755 challenge-004/lakpatashi/perl/ch-1.pl create mode 100755 challenge-004/lakpatashi/perl/ch-2.pl create mode 100644 challenge-004/lakpatashi/perl/inputFile diff --git a/challenge-004/lakpatashi/README b/challenge-004/lakpatashi/README new file mode 100644 index 0000000000..bc153bd576 --- /dev/null +++ b/challenge-004/lakpatashi/README @@ -0,0 +1 @@ +Solution by lakpatashi diff --git a/challenge-004/lakpatashi/perl/ch-1.pl b/challenge-004/lakpatashi/perl/ch-1.pl new file mode 100755 index 0000000000..ad95a4a7e9 --- /dev/null +++ b/challenge-004/lakpatashi/perl/ch-1.pl @@ -0,0 +1,10 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +# PART 1 +use Math::BigFloat qw(bpi); +my $size = -s $0; +print "Script size:: $size\n"; +print"PI value:: ", bpi($size),"\n" ; diff --git a/challenge-004/lakpatashi/perl/ch-2.pl b/challenge-004/lakpatashi/perl/ch-2.pl new file mode 100755 index 0000000000..e9c43aa4cb --- /dev/null +++ b/challenge-004/lakpatashi/perl/ch-2.pl @@ -0,0 +1,46 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +# PART 2 +use Data::Dumper; +my $letterSet = "arefileYOu"; #letter set to be matched to +print "Given letter Set:: $letterSet\n"; +$letterSet = lc $letterSet; +my %letterFreq = buildFreq($letterSet); +#print Dumper(\%letterFreq); + +open(FH,'<','inputFile') or die($!); # file containing list of words +while(my $word = ){ + chomp $word; + $word = lc $word; + my $status = wordMatch(\%letterFreq,$word)? "matched":"not matched"; + print "$word ==> $status\n" +} + +sub wordMatch{ + # arg : + my %letterFreq = %{$_[0]}; + my $word = $_[1]; + my %wordFreq = buildFreq($word); + #print Dumper(\%wordFreq); + + for my $key (keys %wordFreq){ + unless( exists $letterFreq{$key} and $wordFreq{$key} <= $letterFreq{$key} ){ + return 0; + } + } + return 1; +} + + + +sub buildFreq{ #given a string returns letter freq. hash + my $var = shift; + my %freq; + for my $key (split //, $var){ + $freq{$key}++; + } + return %freq; +} diff --git a/challenge-004/lakpatashi/perl/inputFile b/challenge-004/lakpatashi/perl/inputFile new file mode 100644 index 0000000000..90bdc5cf56 --- /dev/null +++ b/challenge-004/lakpatashi/perl/inputFile @@ -0,0 +1,10 @@ +You +are +given +a +file +containing +a +list +of +words -- cgit