thanks for the help so far. the program is much closer to what I want it to be now. the last thing is to count the total number of fouls committed, send them back to the 'main' program, and print them there. I can do the sending back and printing, I'm not sure how to do the counting. Essentially, it would be counting the number of instances of the $typefoul variable in the FoulParser subroutine. Can I get some help? You'll see in the code how I've attempted to put $typefoul and $player into a @stuff array, return that, and print the instances of $typefoul. YOu'll also notice that I tried a failed attempt at counting with a $count variable, but that failed. I only keep those in to show I tried different things.
HEre is the code: Note: Though I have been told twice, maybe 3x that I do not need to declare the number of variables that I am passing, my book, Perl for Beginners, says I do, and, the program doesn't print anything when I leave the declarations out. This is in 5.8.0. Thanks in advance for your help. -stu ------------------------------------ # Subroutine prototypes ################################ sub FoulParser($$$); ############################# # Main Program ############################# use warnings; use strict; open(STATS, "stats.txt") or die "statfile\n"; my $foul; my $foultype; my $player; my $count; my @stuff; while (<STATS>) { if ($_ =~ /(\w+) (Foul:) (\w+)/) { $foul = "$_"; $player = $1; $foultype = $3; print "\nline to be passed: $foul"; @stuff = FoulParser($foul, $player, $foultype); my ($space1, $space2) = @stuff; print "space1: $space1\n"; print "space2: $space2\n"; } } print "type of foul count: $count"; ############################ # Subroutine Definitions ########################### sub FoulParser($$$) { my ($line, $player, $typefoul) = @_; my $count; my @stuff; print "selected line: $line"; print "Player's Name: $player\n"; @stuff = $player; print "Type of foul committed: $typefoul\n"; @stuff = $typefoul; $count = $typefoul; $count++; return @stuff; } ---------------------------------------- --- Jeff 'japhy' Pinyan <[EMAIL PROTECTED]> wrote: > On Jul 21, Stuart White said: > > >I tried reading the perldoc, but it came up all > screwy > >on my screen. Lines ran over the end. I'm having > > Then you can read them online at > http://www.perldoc.com/. > > >trouble passing variables into a subroutine. > Also, > >once I get it passed, I want to pass it from there > >back to the main function. Can someone help me > figure > >this out? This is the code that I have: > > >sub FoulParser($$$); > > You don't NEED function prototypes. In fact, > they're probably confusing > more than you need to be confused right now. > They're for very SPECIFIC > purposes, and I doubt you need them. > > >use warnings; > >use strict; > > > >open(STATS, "stats.txt") or die "statfile\n"; > > You might want to include $! in your error message. > > >my $foul; > >my $foultype; > >my $player; > >my @stuff; > > You might want to define these variables in the > block at which they're > needed. That is, I don't think you use them outside > this while() loop, so > why not wait until you're inside that if block? > > > while (<STATS>) > > { > > if ($_ =~ /(\w+) (Foul:) (\w+)/) > > { > > $foul = "$_"; > > $player = $1; > > $foultype = $3; > > print "line to be passed: $foul"; > > FoulParser($foul, $player, $foultype); > > } > > } > > while (<STATS>) { > if (/(\w+) Foul: (\w+)/) { > my $foul = $_; # why not just use $_ instead > of $foul? > my $player = $1; > my $foultype = $2; # notice I got rid of the > ()'s around Foul: > > FoulParser($foul, $player, $foultype); > } > } > > >sub FoulParser($$$) > >{ > > my ($foul, $typefoul, $player, @stuff); > > Ok, the problem is that you don't ever give these > variables values! You > need to get them from @_, which is the array that > function arguments are > placed into (automatically, by Perl). > > sub FoulParser { > my ($line, $who, $type) = @_; > > Now, it looks like you wanted to do > $fouls{$foultype}{$player}++. That's > fine. Just declare %fouls beforehand, outside the > subroutine (if you want > it to exist outside the subroutine, which I think > you do). > > $fouls{$type}{$who}++; > } > > Please read the documentation, and RE-read the > chapters of the book you're > using. > > -- > Jeff "japhy" Pinyan [EMAIL PROTECTED] > http://www.pobox.com/~japhy/ > RPI Acacia brother #734 http://www.perlmonks.org/ > http://www.cpan.org/ > <stu> what does y/// stand for? <tenderpuss> why, > yansliterate of course. > [ I'm looking for programming work. If you like my > work, let me know. ] > __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]