Groups | Search | Server Info | Login | Register
Groups > comp.lang.perl.misc > #4798
| Path | csiph.com!usenet.pasdenom.info!news.albasani.net!.POSTED!not-for-mail |
|---|---|
| From | Uri Guttman <uri@stemsystems.com> |
| Newsgroups | comp.lang.perl.misc |
| Subject | Re: Embedding code in qq{}? |
| Date | Sun, 18 Mar 2012 19:29:17 -0400 |
| Organization | albasani.net |
| Lines | 75 |
| Message-ID | <87limxtrn6.fsf@stemsystems.com> (permalink) |
| References | <87limyk471.fsf@Gmail.com> <jk41js$p48$1@reader1.panix.com> <1fjg39-qnv2.ln1@anubis.morrow.me.uk> <jk5nht$ot8$1@reader1.panix.com> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=us-ascii |
| X-Trace | news.albasani.net GWDEKxy3VFNe0TOvnOznFGt8W5YxiyO9+zV+7OvIDlnxE1ibu1txu3aw/Ht8PknLPxbf1VLzGn2poxt/PKW76VpdCf0jvmoReWQ4eD2sI9Eu7Oh4REC1LTKkzYGKcdnW |
| NNTP-Posting-Date | Sun, 18 Mar 2012 23:30:00 +0000 (UTC) |
| Injection-Info | news.albasani.net; logging-data="66wpfw9oAX56iXQ3ZRj4oUgj5zDkTdnv5+j/C8kOp/o8DjroPwvDKyswgMxSBb+y1F7bvE4JvVduo/ngTyaImRjUslyEwg0deElbIcJ1s/wft4PXmzjfAgh817N9NzMo"; mail-complaints-to="abuse@albasani.net" |
| User-Agent | Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) |
| Cancel-Lock | sha1:4KWJGzUTj5BQu/4zb848UQMxT5I= sha1:cFE9p1iYhB0BUnUeC3L0LWCMbAI= |
| Xref | csiph.com comp.lang.perl.misc:4798 |
Show key headers only | View raw
>>>>> "TM" == Tim McDaniel <tmcd@panix.com> writes:
TM> In article <1fjg39-qnv2.ln1@anubis.morrow.me.uk>,
TM> Ben Morrow <ben@morrow.me.uk> wrote:
>>
>> Quoth tmcd@panix.com:
>>> In article <87limyk471.fsf@Gmail.com>, XeCycle <XeCycle@Gmail.com>
>>> wrote:
>>> >Is it possible to use something like "${1+2}" -> "3"?
>>>
>>> You made it clear in the rest of the article (which I trimmed) that
>>> you were thinking about the right-hand side of a s///. It turns out
>>> that, in string contexts in general, you can do it.
>>>
>>> Short answer:
>>> ${\(1+2)}
>>
>> If you must do this, then @{[...]} is clearer, since in both cases
>> the internal code is evaluated in list context.
TM> Both are in a scalar context, I think.
i know that to be wrong. one classic issue was that ${\bar()} always
calls in list context. there is no implicit way to get scalar context
there.
>>>>> "TM" == Tim McDaniel <tmcd@panix.com> writes:
TM> In article <1fjg39-qnv2.ln1@anubis.morrow.me.uk>,
TM> Ben Morrow <ben@morrow.me.uk> wrote:
>>
>> Quoth tmcd@panix.com:
>>> In article <87limyk471.fsf@Gmail.com>, XeCycle <XeCycle@Gmail.com>
>>> wrote:
>>> >Is it possible to use something like "${1+2}" -> "3"?
>>>
>>> You made it clear in the rest of the article (which I trimmed) that
>>> you were thinking about the right-hand side of a s///. It turns out
>>> that, in string contexts in general, you can do it.
>>>
>>> Short answer:
>>> ${\(1+2)}
>>
>> If you must do this, then @{[...]} is clearer, since in both cases
>> the internal code is evaluated in list context.
TM> Both are in a scalar context, I think.
TM> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TM> #! /usr/bin/perl
TM> use strict;
TM> use warnings;
TM> sub tester {
TM> if (wantarray) {
TM> print "array context\n";
TM> return [ 11, 12, 13 ];
TM> } else {
TM> print "scalar context\n";
TM> return \(22);
TM> }
TM> }
TM> print "scalar: ", ${tester()}, "\n";
TM> print "array: ", @{tester()}, "\n";
those are not correct tests. neither is being interpolated into a string
nor is \ being used. just a dereference in code will of course provide a
scalar context as you need a single scalar value to dereference.
change the code to "scalar: ${\tester()}\n" and "array: ${[tester()]}\n"
and see what happens. that is looking at the context in interpolation.
uri
Back to comp.lang.perl.misc | Previous | Next — Previous in thread | Next in thread | Find similar
Embedding code in qq{}? XeCycle <XeCycle@Gmail.com> - 2012-03-18 10:56 +0800
Re: Embedding code in qq{}? Uri Guttman <uri@stemsystems.com> - 2012-03-17 23:04 -0400
Re: Embedding code in qq{}? XeCycle <XeCycle@Gmail.com> - 2012-03-18 12:14 +0800
Re: Embedding code in qq{}? tmcd@panix.com (Tim McDaniel) - 2012-03-18 07:07 +0000
Re: Embedding code in qq{}? Ben Morrow <ben@morrow.me.uk> - 2012-03-18 08:37 +0000
Re: Embedding code in qq{}? tmcd@panix.com (Tim McDaniel) - 2012-03-18 22:28 +0000
Re: Embedding code in qq{}? merlyn@stonehenge.com (Randal L. Schwartz) - 2012-03-18 16:18 -0700
Re: Embedding code in qq{}? tmcd@panix.com (Tim McDaniel) - 2012-03-19 02:21 +0000
Re: Embedding code in qq{}? Uri Guttman <uri@stemsystems.com> - 2012-03-19 00:14 -0400
Re: Embedding code in qq{}? tmcd@panix.com (Tim McDaniel) - 2012-03-19 06:42 +0000
Re: Embedding code in qq{}? Ben Morrow <ben@morrow.me.uk> - 2012-03-19 16:40 +0000
Re: Embedding code in qq{}? Uri Guttman <uri@stemsystems.com> - 2012-03-18 19:29 -0400
Re: Embedding code in qq{}? Uri Guttman <uri@stemsystems.com> - 2012-03-18 15:24 -0400
Re: Embedding code in qq{}? tmcd@panix.com (Tim McDaniel) - 2012-03-18 22:33 +0000
Re: Embedding code in qq{}? Uri Guttman <uri@stemsystems.com> - 2012-03-18 19:24 -0400
Re: Embedding code in qq{}? Ben Morrow <ben@morrow.me.uk> - 2012-03-19 00:49 +0000
Re: Embedding code in qq{}? Uri Guttman <uri@stemsystems.com> - 2012-03-18 22:05 -0400
Re: Embedding code in qq{}? tmcd@panix.com (Tim McDaniel) - 2012-03-19 02:55 +0000
Re: Embedding code in qq{}? Uri Guttman <uri@stemsystems.com> - 2012-03-19 00:12 -0400
Re: Embedding code in qq{}? tmcd@panix.com (Tim McDaniel) - 2012-03-19 07:00 +0000
Re: Embedding code in qq{}? Ben Morrow <ben@morrow.me.uk> - 2012-03-19 16:43 +0000
csiph-web