मैं पर्ल में एक नौसिखिया हूँ और अपना होमवर्क में से एक के लिए मैं इस तरह एक समाधान के साथ आया था:यह कैसे अधिक पर्ल में किया जा सकता जिस तरह से
#wordcount.pl FILE
#
#if no filename is given, print help and exit
if (length($ARGV[0]) < 1)
{
print "Usage is : words.pl word filename\n";
exit;
}
my $file = $ARGV[0]; #filename given in commandline
open(FILE, $file); #open the mentioned filename
while(<FILE>) #continue reading until the file ends
{
chomp;
tr/A-Z/a-z/; #convert all upper case words to lower case
tr/.,:;!?"(){}//d; #remove some common punctuation symbols
#We are creating a hash with the word as the key.
#Each time a word is encountered, its hash is incremented by 1.
#If the count for a word is 1, it is a new distinct word.
#We keep track of the number of words parsed so far.
#We also keep track of the no. of words of a particular length.
foreach $wd (split)
{
$count{$wd}++;
if ($count{$wd} == 1)
{
$dcount++;
}
$wcount++;
$lcount{length($wd)}++;
}
}
#To print the distinct words and their frequency,
#we iterate over the hash containing the words and their count.
print "\nThe words and their frequency in the text is:\n";
foreach $w (sort keys%count)
{
print "$w : $count{$w}\n";
}
#For the word length and frequency we use the word length hash
print "The word length and frequency in the given text is:\n";
foreach $w (sort keys%lcount)
{
print "$w : $lcount{$w}\n";
}
print "There are $wcount words in the file.\n";
print "There are $dcount distinct words in the file.\n";
$ttratio = ($dcount/$wcount)*100; #Calculating the type-token ratio.
print "The type-token ratio of the file is $ttratio.\n";
मैं टिप्पणी क्या उल्लेख करने के लिए शामिल किया है यह कर देता है। असल में मुझे दिए गए टेक्स्ट फ़ाइल से शब्द गिनती मिलनी है। उपरोक्त कार्यक्रम के उत्पादन में दिखेगा की तरह:
The words and their frequency in the text is:
1949 : 1
a : 1
adopt : 1
all : 2
among : 1
and : 8
assembly : 1
assuring : 1
belief : 1
citizens : 1
constituent : 1
constitute : 1
.
.
.
The word length and frequency in the given text is:
1 : 1
10 : 5
11 : 2
12 : 2
2 : 15
3 : 18
There are 85 words in the file.
There are 61 distinct words in the file.
The type-token ratio of the file is 71.7647058823529.
यहां तक कि मैं अपना होमवर्क के लिए समाधान पता लगाने के लिए सक्षम कर सकते हैं गूगल की मदद से हालांकि। लेकिन हालांकि मुझे लगता है कि पर्ल की वास्तविक शक्ति का उपयोग करके एक छोटा और संक्षिप्त कोड होगा। क्या कोई मुझे कोड की बहुत कम लाइनों के साथ पर्ल में समाधान दे सकता है?
अपने उपयोग बयान के अनुसार, फ़ाइल नाम दूसरा तर्क है। यह आपके कोड के विपरीत है। –
सुझाव एक है: स्पष्ट रूप से खुला उपयोग न करें। बस <> का उपयोग करें। पर्ल एआरजीवी में एक फ़ाइल नाम के रूप में प्रत्येक तर्क की व्याख्या करेगा, और <> इससे पढ़ेगा। –
@WilliamPursell: हाँ फ़ाइल का नाम दूसरा तर्क है .. – sriram