Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

Re: New perl student... feeling stupid

by FouRPlaY (Monk)
on May 18, 2001 at 20:57 UTC ( #81556=note: print w/replies, xml ) Need Help??

in reply to New perl student... feeling stupid

What's happend is that you've created a hash %count to contain all your information, but in your code, you use scalar variables $vow, $para, etc, etc.

What you want is $count{'vow'}++ for vowels, $count{'para'}++ for paragraphs, etc, etc...

Learning Perl or Going To die() Trying

Replies are listed 'Best First'.
Re: Re: New perl student... feeling stupid
by Tanya (Initiate) on May 18, 2001 at 21:32 UTC

    Hrmmm I see... and I changed my code to reflect your advice.. it makes sence to me, however, now my program just hangs. It will start to run the program but there is no out put. it just sits there.

    Thanks for your help by the way..

    I really apreciate it.

    I am really new to perl. tanya

      the "diamond" operator <> attempts to read a line from the file whose name you pass on the command line. (e.g. ./ file.txt) If you pass more than one filename on the command line, it will loop over all the lines in each file.

      Read up on <> in perldoc perlop

      If it runs out of command-line arguments and you try to read from it, then it attempts to read from STDIN (in this context, the keyboard). What your code is doing is reading in the file once, on the first pass. You think it's going to read it again when you say  while ( <> ) {, but what it's actually doing is attempting to read another file whose name was passed to it on the command line. But there is no such thing, so it just sits there expecting input from the keyboard (Control-D is the symbol for "end of file", so try hitting that a few times and see what happens).

      Moral of the story: don't do it that way =) Loop through the file *once* and do all your counting on that one run through it.


      perl -e 'print "How sweet does a rose smell? "; chomp ($n = <STDIN>); +$rose = "smells sweet to degree $n"; *other_name = *rose; print "$oth +er_name\n"'

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://81556]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (3)
As of 2022-12-03 10:13 GMT
Find Nodes?
    Voting Booth?

    No recent polls found