<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>'Re: Analysing text files to obtain statistics on their content Using P' Thread RSS Feed</title>
    <link>http://www.programmersheaven.com/</link>
    <description>Contains the latest posts from the thread 'Re: Analysing text files to obtain statistics on their content Using P' posted on the 'Perl' forum at Programmer's Heaven.</description>
    <language>en</language>
    <copyright>Copyright 2012 Programmers Heaven</copyright>
    <pubDate>Wed, 23 May 2012 22:50:34 -0700</pubDate>
    <lastBuildDate>Wed, 23 May 2012 22:50:34 -0700</lastBuildDate>
    <generator>Argotic Syndication Framework 2007.3.0.1, http://www.codeplex.com/Argotic</generator>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <ttl>360</ttl>
    <image>
      <url>http://www.programmersheaven.com/images/ph.gif</url>
      <title>Programmers Heaven</title>
      <link>http://www.programmersheaven.com/</link>
      <width>88</width>
      <height>31</height>
    </image>
    <item>
      <title>Re: Analysing text files to obtain statistics on their content Using P</title>
      <link>http://www.programmersheaven.com/mb/perl/396635/396635/re-analysing-text-files-to-obtain-statistics-on-their-content-using-p/</link>
      <description>Can anyone get this code to run?&lt;br /&gt;
Re: Analysing text files to obtain statistics on their content Using Perl&lt;br /&gt;
&lt;br /&gt;
#!/usr/bin/perl&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
use strict;&lt;br /&gt;
&lt;br /&gt;
use warnings;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
my $filename= "";&lt;br /&gt;
&lt;br /&gt;
if ($#ARGV == -1) #no filename provided as a command line argument.&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
print("Please Enter Filename: ");&lt;br /&gt;
&lt;br /&gt;
$filename = &amp;lt;STDIN&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
chomp($filename);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
else&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
$filename = $ARGV[0];&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if ($filename !~ m/^[_a-zA-Z][^.]{1,7}\.TXT$/i)&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
die("File is not valid.\n");&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if ($filename !~ m/\.TXT$/i)&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
$filename.=".TXT";&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if (-e $filename)&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
die("File does not exist\n");&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
#check if filename is empty, exit if it is.&lt;br /&gt;
&lt;br /&gt;
if (-s $filename)&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
die("File is empty\n");&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
open(READFILE, $filename) or die ("Can't open file $filename");&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
#then use a while loop and series of if statements similar to the following&lt;br /&gt;
&lt;br /&gt;
while (&amp;lt;READFILE&amp;gt;) {&lt;br /&gt;
&lt;br /&gt;
chomp; #removes the input record Separator&lt;br /&gt;
&lt;br /&gt;
my $i = $.; #"$". is the input record line numbers, $i++ will also work&lt;br /&gt;
&lt;br /&gt;
my $p++ if (m/^$/); #count paragraphs&lt;br /&gt;
&lt;br /&gt;
my @t = split (/\s+/); #split sentences into "words" and store them in @t&lt;br /&gt;
&lt;br /&gt;
my $words+= @t; # add count to $words&lt;br /&gt;
&lt;br /&gt;
my $chars += tr/ //c; #tr/ //c replaces everything in the string with itself, except spaces, and returns the number of such characters replaced&lt;br /&gt;
&lt;br /&gt;
#count all characters except spaces and add to $chars&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
my $sentences = 0;&lt;br /&gt;
&lt;br /&gt;
my $i = 0;&lt;br /&gt;
&lt;br /&gt;
my $p = 1;&lt;br /&gt;
&lt;br /&gt;
my $words = 0;&lt;br /&gt;
&lt;br /&gt;
my $chars = 0;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
while(my $ch = getc(READFILE))&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
my $character_count;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
chomp($ch);&lt;br /&gt;
&lt;br /&gt;
if($ch eq "?" || $ch eq "," || $ch eq ".")&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
$sentences++;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
my $word++;&lt;br /&gt;
&lt;br /&gt;
if(my $ch =~ /[ \t]+/)&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
$chars++;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
close(READFILE);&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
#display results&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
print("Sentences: $sentences\n");&lt;br /&gt;
&lt;br /&gt;
print("Lines: $i lines\n");&lt;br /&gt;
&lt;br /&gt;
print("Paragraphs: $p paragraphs\n");&lt;br /&gt;
&lt;br /&gt;
print("Words: $words\n");&lt;br /&gt;
&lt;br /&gt;
print("Characters: $chars\n");&lt;br /&gt;</description>
      <guid isPermaLink="true">http://www.programmersheaven.com/mb/perl/396635/396635/re-analysing-text-files-to-obtain-statistics-on-their-content-using-p/</guid>
      <pubDate>Sun, 06 Sep 2009 06:49:01 -0700</pubDate>
      <category>Perl</category>
    </item>
  </channel>
</rss>
