Bernard Hill wrote:
> Good morning, All.
> 
> Not sure if this list supports basic questions, but I'll pose the query 
> to find out.
> 
> I am new to PERL and working on an basic PERL script. The script will 
> import values into an array. when complete, I want to do a calculation 
> based on two feilds and drop the answer into the third field. Basically 
> I have the following script, but keep getting a syntax error and can't 
> figure out where I've gone wrong:

What's your syntax error - I see several.

> sub {
> $output = '';
> 
> chomp $_[0];
> $delim = $_[1];
> @input_fields = split /$delim/, $_[0];
> 
> # input the values into the array
> for($i=0; $i<$#input_fields; $i++) {
> if i$ == 2
> {
> # perform the calculation
> $input_fields[$i] = $input_fields[$i-1] * $input_fields[$i-2];
> }
> output = $output . $input_fields[$i] . $delim;
> }
> 
> $output = $output . $input_fields[$#input_fields] . "\n";
> return($output);
> }
> 
> Any help is grealy appreciated!

Would help if we had some idea of what you were trying to do.

use strict;                     # always run with this
use warnings;                   # always run with this

my $ret = mysub ('2;3;???', ';');       # not sure what this is supposed to do
print $ret;
exit;

sub mysub {
        my ($input, $delim) = @_;

my @input_fields = split /$delim/, $input;

# input the values into the array

my $output = '';
for (my $ii = 0; $ii < @input_fields; ++$ii) {
        my $calc = 0;
        if ($ii == 2) {
                # perform the calculation
                $calc = $input_fields[$ii-1] * $input_fields[$ii-2];
                $output .= $calc . $delim;
        } else {
                $output .= $input_fields[$ii] . $delim;
        }
}
return $output . $input_fields[-1] . "\n";

}

__END__

# this should also work depending on what you actually want to do:

sub mysub {
        my ($input, $delim) = @_;
my @input_fields = split /$delim/, $input;
return $input_fields[0] . $delim . $input_fields[1] . $delim .
   $input_fields[0] * $input_fields[1] . $delim . $input_fields[2] . "\n";
}
_______________________________________________
ActivePerl mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to