# [Tutor] Are you allowed to shoot camels? [kinda OT]

Liam Clarke cyresse at gmail.com
Thu Feb 3 01:42:10 CET 2005

```> I don't find it that bad. Ruby does it as well, and it's perfectly
readable. It's more or less equivalent as if condition: and
if(condition): both being valid in Python.

Yeah, but you'd never call a function foo like this-

x = foo

in Python. It's just good to be able to say that a function always has
<some rule here>.

>You sure of that? I was under the impression that len(moddirList) in
Perl was \$moddirList (@moddirList is the list itself).

Well, my one's correct, but I think yours is also. And this is what gets me.

@mod = (1,2,3)
\$mod = 3
\$mod[0] = 1

Is inconsistent. Or at least, the logic behind this is not immediately
apparent to me. I'm always open to illumination on these things
however.

>> if ( not \$d eq "a" && not \$d eq "c") = False for \$d = "b"
>> if (\$d ne "a" && \$d ne "c") = True

>This probably has to do with operator precedence. It's been lifted
from C, so chances are that && has a higher precedence than eq. Use
parentheses.

Ah... Ironic, I got misled by TMTOWTDI. I figured that if not x=="a"
and not x == "c" evaled as True in Python, and "if (not \$d eq "a")"
evaled as True in Perl, that
if ( not \$d eq "a" && not \$d eq "c") would also eval as true.
Of course, what's even weirder to me is that
if (\$d ne "a" && \$d ne "c") does eval as True, as far as I can see,

'\$d ne "a"' is the same as d != "a" in Python, which is the same as
'if not d == "a"', which, logically, would mean that \$d ne "a" is the
same as 'if(not \$d eq "a") in which case both tests should handle the
addition of an AND the same.

Once again, illumination is welcomed, as I have a finally that some
subtlety of Boolean logic is eluding me, and a 'x != a' test is
different to 'if not x == a' in a small but significant way.

Max - the foo > std.txt thing explains it, but what about @dude =
<FILE>, where do the brackets originate from?

This is another issue I'm having with Perl as opposed to Python - Perl
is very much written by *nix users for *nix users, it's implementation
of *nix conventions shows, including the
`` things. Whereas (correct me if I'm wrong), but Python was written
by *nix users for everyone. Python seems very non-OS-denominational in
it's current incarnation, it may have been very *nix orientated prior.

So here comes me, the guy who installed Linux once, failed to see the
big deal and uninstalled it. Up until 3 months ago, my comp was used
for gaming, pure and simple, me being a certified Day of Defeat freak,
and so Windows has always best served my purpose.

Now, I want to programme, so I have to learn Unix conventions to use a
crossplatform language!  It's like asking *nix users to sign a
Microsoft EULA!! (Well, not as bad, but still as anathemic.)

>Fast forward to last summer. In the span of 1 week, I discovered both
Python and Ruby. Fell in love with both and immediately ditched Perl.

How's Ruby? I bookmarked the homepage, but never got around to looking at it.

Oh, and I will say this - Perl > Java (and that's an inequality test,
not a redirection of output)

Cheers,

Liam Clarke

--
'There is only one basic human right, and that is to do as you damn well please.
And with it comes the only basic human duty, to take the consequences.
```