Just a quick question, because I'm not sure what you mean here:
"If $x = \\"bar", then $$x returns a reference (to "bar") which is a scalar, but certainly NOT a string." How is "bar" not a string? -----Original Message----- From: Jeff 'japhy' Pinyan [mailto:[EMAIL PROTECTED]] Sent: Thursday, June 06, 2002 12:45 PM To: Bryan R Harris Cc: [EMAIL PROTECTED] Subject: RE: references and dereferencing On Jun 6, Bryan R Harris said: >1. What is a sigil? Consult your nearest dictionary. Sigil == symbol. >2. I like to make little reference pages for myself, do these terms look >right? I'd suggest scouring perlreftut and perlref. ># GETTING POINTERS Stop using the word "pointer" right now. Immediately. Post-haste. Perl does not have pointers. It has references. They are different. /* C code */ int nums[10] = { 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 }; int *p = nums; printf("*p = %d\n", *p); /* 1 */ p++; printf("*p = %d\n", *p); /* 2 */ Compare with: # Perl code @nums = (1,2,4,8,16,32,64,128,256,512); $p = \@nums; print "\$p->[0] = $p->[0]\n"; # 1 print "\$p->[1] = $p->[1]\n"; # 2 Perl does not have iterative "thingy"s like C's pointers. You could make a faux-pointer with an object, but why? >\$mystring; # returns a pointer to mystring >\@myarray; # returns a pointer to myarray >\%myhash; # returns a pointer to myhash s/pointer/reference/ for the rest of this article. ># FOLLOWING POINTERS > >${ $pointer }; # returns string pointed to by $pointer > # $pointer can be replaced with anything > # that returns a pointer as a scalar s/string/scalar/. If $x = \20, then $$x returns 20. If $x = \\"bar", then $$x returns a reference (to "bar") which is a scalar, but certainly NOT a string. >@{ $pointer }[0]; # returns first element (element zero) > # of the array pointed to by $pointer ${ $reference }[0] is better. The @ should be a $ here. >$pointer->[0]; # (same) > >%{ $pointer }{$somekey}; # returns hash value of hash pointed > # to by $pointer, key $somekey NO. The % should be a $. ># CREATING STRUCTURES > >[ @myarray $mystring ]; # returns a pointer to a new copy of > # a new array containing @myarray with > # $mystring at the end Missing a comma. -- Jeff "japhy" Pinyan [EMAIL PROTECTED] http://www.pobox.com/~japhy/ RPI Acacia brother #734 http://www.perlmonks.org/ http://www.cpan.org/ ** Look for "Regular Expressions in Perl" published by Manning, in 2002 ** <stu> what does y/// stand for? <tenderpuss> why, yansliterate of course. [ I'm looking for programming work. If you like my work, let me know. ] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]