---------- Original Message ----------------------------------
From: [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
Date: Wed, 30 Jan 2002 17:03:45 +0100

>On Wed, Jan 30, 2002 at 04:46:28PM +0100, Joerg Ziefle wrote:
>> ---------- Original Message ----------------------------------
>> From: [EMAIL PROTECTED]
>> Reply-To: [EMAIL PROTECTED]
>> Date: Wed, 30 Jan 2002 16:24:20 +0100
>> 
>> >On Wed, Jan 30, 2002 at 03:55:32PM +0100, Joerg Ziefle wrote:
>> >>    perl -e 'print "Current time is: @{[scalar localtime]}\n"'
>> >> 
>> >> Note the obvious difference to:
>> >> 
>> >>    perl -e 'print "Current time is: @{[localtime]}\n"'
>> >
>> >
>> >Eh, it's the "scalar" that makes the scalar evaluation in those
>> >examples. After all "@{[scalar localtime]}" gives the result
>> >of 'localtime' in scalar context, not list context as you suggest.
>> 
>> Ok, got me :)
>> The example was not the best and would have better been something along
>> 
>> perl -e 'print "1 + 3 = ${\(1+3)}\n"'
>
>That would not be a very good example, and 1 + 3 is 4 in both scalar
>and list context.
>
>> BTW, can you think of a clunkier way to get the name of the current script as
>> 
>> print "Call me $${\localtime} darling.\n"
>> 
>> (and with some luck, that even fails :)?
>
>I fail to understand what you mean.

Consider this example program:

$\ = '
';
sub foo { return qw/1234 4567/ }
sub bar { return qw/1    2   / }

print "Call me $${\foo} darling.";
print "Call me $${\bar} darling.";
"bazbaz" =~ /(az)(ba)/;
print "Call me $${\bar} darling.";
__END__
Call me  darling.
Call me  darling.
Call me ba darling.

See what I mean?

Same with localtime:

localtime is called in list context and returns a list as follows:

  ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)

>From this list, the last element, $isdst ("is daylight saving time", currently 0) is 
>taken in the expression
  
  $${\localtime}

so at the moment, this gets

  $0

Imagine the time has come that $isdst gets 1, then this expression reads

  $1

which has quite another meaning.


Joerg

Reply via email to