[Tutor] Are you allowed to shoot camels? [kinda OT]
Sean Perry
shaleh at speakeasy.net
Thu Feb 3 06:01:09 CET 2005
Liam Clarke wrote:
> 4) WHAT IS WITH THE STUPID SYMBOLS EVERYWHERE LARRY??!!
>
> I'm not referring to the $ & @, I can see how they could be useful,
> although with a list -
>
> @dude = (1, 2, 3), to obtain the 2nd value I would expect $d = @dude[1],
> not $d = $dude[1], that's counterintuitive also.
>
(I am an ex-perler gone clean. Been straight for 5 years now with only
the occasional work forced binges.)
Perl was designed by a linguist. He wanted it to act like human language
-- which is not very consistent.
That said, perhaps I can shed some light on the symbols.
Ever learned a Romance language? latin, spanish, french, etc? The
dollars and at signs can be thought of in relation to plural endings.
$foo --> dog
@dog --> a group of dogs
$dog[0] --> a dog in the group
So when you mean "the whole group" use the plural spelling and when you
want to refer to a member use the singular spelling. Likewise with other
parts of the language.
Personally, the thing that keeps me away from Perl is nested datastructures.
Python:
my_list = [....]
a_dict = {.....}
b_dict = {.....}
my_list.append(a_dict)
my_list.append(b_dict)
if my_list[0].has_key("foo"): print "Yes"
easy. Try that in Perl.
my @my_list; # remember those semicolons
my %a_dict, %b_dict;
push @my_list, %a_dict;
push @my_list, %b_dict;
if (exists $my_list->[0], "foo") print "Yes\n";
# yes, references required, in Perl ick.
More information about the Tutor
mailing list