PERL HELP

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;
}


LVL 2
micromarchAsked:
Who is Participating?
 
ozoConnect With a Mentor Commented:
#!/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
 
hclgroupConnect With a Mentor Commented:
#!/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
 
hclgroupCommented:
You can remove line 20 : print "$_";
That was just for debuggin purposes...
0
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

 
hclgroupCommented:
Also, I changed it to read input until the 'end' word is entered (in a new line of course)
0
 
micromarchAuthor Commented:
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
 
ozoCommented:
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
 
micromarchAuthor Commented:
and that is suppose to mean what?
0
 
micromarchAuthor Commented:
how can I make it accept more then one number?
0
 
micromarchAuthor Commented:
nevermind gotcha
thanks allot for both your help. I really appreciate this.
0
 
micromarchAuthor Commented:
i think you both deserve points so how do i split them?
0
 
hclgroupCommented:
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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.