Solved

# PERL HELP

Posted on 2006-10-25
390 Views
hello experts. I am trying to create a function that takes in an array of numbers and calculates the average, the total and a new array of numbers which is other numbers divided by two and return the list of info. here is what I have so far and im kinda stuck. help would be greatly apprectiated.

#main script to be called

#!/usr/bin/perl
@numbers;
require 'function.pl'
while(<STDIN>){
push(@numbers,\$_);
}
\$list = result(@numbers)
print "\$list\n";

#this is the function script
sub result()
{
@half;
@array = shift(@_);
\$i=0;
foreach (@array){
\$sum += @arrray[\$i];
push(@half,@array[\$i]/2);
\$i++;
}
\$average = \$sum/2;
\$list = join(":",@half,\$sum,\$average);
return \$list;
}

0
Question by:micromarch
• 5
• 4
• 2

LVL 4

Assisted Solution

hclgroup earned 200 total points
ID: 17805379
#!/usr/bin/perl
@numbers;

while(<STDIN>){
last if (/^end\$/);
push(@numbers,\$_);
}
\$list = result(@numbers);
print "\$list\n";

#this is the function script
sub result()
{
@half;
@array = @_;
\$i=0;
\$sum=0;
foreach (@array){
\$sum += \$_;
print "\$_";
push(@half,\$_/2);
\$i++;
}
\$average = \$sum/\$i;
\$list = join(":",@half,\$sum,\$average);
return \$list;
}
0

LVL 4

Expert Comment

ID: 17805391
You can remove line 20 : print "\$_";
That was just for debuggin purposes...
0

LVL 4

Expert Comment

ID: 17805419
Also, I changed it to read input until the 'end' word is entered (in a new line of course)
0

LVL 2

Author Comment

ID: 17805631
ok thanks but why does it always give me an error that my script did not return a true value at line 2? my functions is located into another script. it seems to be bugging where I state. require 'name of script';
thanks.
0

LVL 84

Expert Comment

ID: 17805702
perl -Mdiagnostics -e "require 'name of script'"
name of script did not return a true value at -e line 1 (#1)
(F) A required (or used) file must return a true value to indicate that
it compiled correctly and ran its initialization code correctly.  It's
traditional to end such a file with a "1;", though any true value would
do.  See perlfunc/require.
0

LVL 2

Author Comment

ID: 17805735
and that is suppose to mean what?
0

LVL 84

Accepted Solution

ozo earned 300 total points
ID: 17805786
#!/usr/bin/perl
use strict;
use warnings;
my @numbers;

while(<>){
last if (/^end\$/);
push(@numbers,\$_);
}
my \$list = result(@numbers);
print "\$list\n";

#this is the function script
sub result{
my @half = map{\$_/2}@_;
my @array = @_;
my \$sum=0;
foreach( @array ){
\$sum += \$_;
}
my \$average = \$sum/@array;
return join(":",@half,\$sum,\$average);
}
1;
0

LVL 2

Author Comment

ID: 17805932
how can I make it accept more then one number?
0

LVL 2

Author Comment

ID: 17805955
nevermind gotcha
thanks allot for both your help. I really appreciate this.
0

LVL 2

Author Comment

ID: 17805992
i think you both deserve points so how do i split them?
0

LVL 4

Expert Comment

ID: 17806095
You click on the link that says Split.
Then a box show up next to each username and comment so you can assign points to each person.
But you can only accept one answer.
0

## Featured Post

### Suggested Solutions

Exchange and Third Party application. 8 59
wordsWithout 49 79
changePi Challenge 15 75
noX challenge 17 76
This article will show, step by step, how to integrate R code into a R Sweave document
Although it can be difficult to imagine, someday your child will have a career of his or her own. He or she will likely start a family, buy a home and start having their own children. So, while being a kid is still extremely important, it’s also …
In this fourth video of the Xpdf series, we discuss and demonstrate the PDFinfo utility, which retrieves the contents of a PDF's Info Dictionary, as well as some other information, including the page count. We show how to isolate the page count in a…
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…