On Nov 1, 1:37 pm, [EMAIL PROTECTED] (Jl Post) wrote:
> On Nov 1, 9:35 am, [EMAIL PROTECTED] (Charles) wrote:
>
>
>
> > I have module from CPAN named Graph. I have created a subroutine for
> > this to pass in two arrays; x-axis and y-axis into my Graph subroutine
> > i.e. ; &graph( @Xvalues, @Yvalues );
>
> > My confusions is: in my subroutine, I cannot treat the two parameters
> > (arrays) as separate parameters.
>
> Dear C. Carson,
>
> That's right. InPerl, you usually cannot treat two arrays as
> separate parameters. As a result, your line:
>
> graph( @Xvalues, @Yvalues );
>
> is functionally equivalent to the following two lines:
>
> my @array = ( @Xvalues, @Yvalues );
> graph( @array );
>
> which I'm guessing is not what you meant.
>
> To do what you want, you need to pass in two scalar values as
> parameters (each representing one array), and then extracting the
> arrays out in the graph() function. For example, you'd call your
> graph() function like this:
>
> graph( [EMAIL PROTECTED], [EMAIL PROTECTED] );
>
> The '\' character (in front of both arrays) returns a scalar reference
> to its array, which is then sent into the graph() function.
>
> However, in your graph() function $_[0] and $_[1] will not be set
> to the arrays, but rather the references to the arrays. You must do
> something like this in your graph() function to de-reference them:
>
> sub graph
> {
> my @Xvalues = @{ $_[0] }; # remember to use "my"!
> my @Yvalues = @{ $_[1] }; # remember to use "my"!
>
> # The @Xvalues and @Yvalues arrays are now set to what you
> want.
>
> # (The rest of your code goes here.)
> }
>
> I hope this helps, C. Carson.
>
> -- Jean-Luc
Thank you so much for your help! I will try this and let you know.
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/