* Gary Yang wrote:
>I have hard time of understanding “use constant”. I do not understand
>why place the “+” in front of constant variable. See the code below. In
>the for loop, It adds “+” (+kAWSAccessKeyId,). In the new function call,
>it adds the “+” (+RequestSignatureHelper::kAWSAccessKeyId => myAWSId). I
>read the perldoc of “use constant”. But, no clue. Can someone explain
>what it mean? Or point me any books or URLs I can read.  I got the code
>below from some samples. If this mailing list is not the proper place to
>ask this question, please tell me which mailing list is best for this
>question.  Thanks.

This mailing list is dedicated to libwww-perl related issues, general
questions about Perl programming would be better placed on forums like
http://www.perlmonks.org/ or the comp.lang.perl.* newsgroups on Usenet.

As for your question, many of the "+" in the script are redundant, so
they are likely there for reasons of consistency. Sometimes you can use
the operator to force a particular interpretation, for instance,

  print +('xxx'), ('yyy');

will print 'xxxyyy' but without the "+" you get 'xxx'. Similarily,

>$self->{+kRequestMethod}

The `constant.pm` module installs subroutines for the constants you
register, so this is read as a function call

  $self->{ kRequestMethod() }

while without the "+" it would be read as a string literal like

  $self->{ "kRequestMethod" }

I hope that helps,
-- 
Björn Höhrmann · mailto:bjo...@hoehrmann.de · http://bjoern.hoehrmann.de
Am Badedeich 7 · Telefon: +49(0)160/4415681 · http://www.bjoernsworld.de
25899 Dagebüll · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/ 

Reply via email to