Solved

PERL HELP

Posted on 2006-10-25
11
392 Views
Last Modified: 2008-02-01
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
Comment
Question by:micromarch
  • 5
  • 4
  • 2
11 Comments
 
LVL 4

Assisted Solution

by:hclgroup
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

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

Expert Comment

by:hclgroup
ID: 17805419
Also, I changed it to read input until the 'end' word is entered (in a new line of course)
0
Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

 
LVL 2

Author Comment

by:micromarch
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

by:ozo
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

by:micromarch
ID: 17805735
and that is suppose to mean what?
0
 
LVL 84

Accepted Solution

by:
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

by:micromarch
ID: 17805932
how can I make it accept more then one number?
0
 
LVL 2

Author Comment

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

Author Comment

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

Expert Comment

by:hclgroup
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

Does Powershell have you tied up in knots?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
topping3 challenge 14 81
firstswap challenge 20 78
"Black Box" Testing of Control System Software 2 53
Query Syntax 17 36
Here we come across an interesting topic of coding guidelines while designing automation test scripts. The scope of this article will not be limited to QTP but to an overall extent of using VB Scripting for automation projects. Introduction Now…
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
With the power of JIRA, there's an unlimited number of ways you can customize it, use it and benefit from it. With that in mind, there's bound to be things that I wasn't able to cover in this course. With this summary we'll look at some places to go…
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…

823 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question