> -----Original Message-----
> From: Batchelor, Scott [mailto:[EMAIL PROTECTED]]
> Sent: Monday, May 20, 2002 4:21 PM
> To: '[EMAIL PROTECTED]'
> Subject: Calling subroutines...
> 
> 
> Hi again all.
> 
> I have a question about calling a subroutine in Perl.  Here 
> is what I am
> trying:
> 
> Calling_sub($var1, $var2);
> 
> sub calling_sub

Perl is cAsE sensitive, so you these two lines don't agree.

Also, the body of the sub needs to be enclosed in { }

> 
> my $subvar = @_;

This doesn't do what you think it does. @_ is an array containing
the list of args passed to your sub by the caller. Since $subvar
is a scalar, this evaluates @_ in scalar context, returning the
number of args passed.

> 
> my $subvar1 = $var1

Need a semicolon to separate this statement from the following.

> 
> my $subvar2 = $var2
> 
> 
> 
> Now my question is...Don't I need to somehow split the two 
> variables that I
> passed to the subroutine so that I can use them separately? 

The standard way is:

   sub foo
   {
      my ($arg1, $arg2) = @_;

      ...blah...
   }

or:

   sub foo
   {
      my $arg1 = shift;
      my $arg2 = shift;

      ...blah...
   }

(The latter form taking advantage of the default behavior of
shift() when used in a sub to shift from @_).

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to