Got it. Thanks.
--- "Charles K. Clarkson" <[EMAIL PROTECTED]>
wrote:
> Stuart White <[EMAIL PROTECTED]> wrote:
> :
> : > sub anchor($$);
> : >
> : > print anchor( '/perl/', 'Learning Perl' ); #
> works
> : > print anchor( foo() ); #
> fails
> : >
> : > sub anchor($$) {
> : > my( $href, $name ) = @_;
> : > return qq(<a href="$href">$name</a>);
> : > }
> : >
> : > sub foo() {
> : > return( '/perl/', 'Learning Perl' );
> : > }
> :
> : I stared at this code for about 10 minutes before
> I
> : understood what was going on, why one failed and
> one
> : worked... my response to that would be, of course!
> : You're passing literals, not scalars to anchor(),
>
> This is perl. Literals are scalars.
>
>
> : but you're prototyping anchor() to receive
> literals.
>
> No. I'm prototyping anchor() to receive two
> scalar
> values. Numbers, strings, and references are all
> valid
> scalars in perl. Perl prototyping does not
> distinguish
> between variables and literals.
>
>
> : See, if I saw some code where anchor() was used
> : twice, once where it received scalars, and another
> : when it received literals or hashes, or arrays,
> I'd
> : be so confused.
>
> That's a problem when thinking in one language
> while programming in another. Sometimes you have to
> forget the C you know.
>
>
> : I never saw the benefit of passing literals, which
> : might explain it.
>
> As for as perl prototyping is concerned literals
> and scalar variables are interchangeable. Perl is
> not
> a subset of C. It is a whole new adventure.
>
>
> HTH,
>
> Charles K. Clarkson
> --
> Mobile Homes Specialist
> 254 968-8328
>
__________________________________
Do you Yahoo!?
Yahoo! Mail - More reliable, more storage, less spam
http://mail.yahoo.com
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>