in reply to Re^4: Is { } an empty block or a bug in perl?
in thread Is { } an empty block or a bug in perl?

/me is confused. Do you mean that ";" is an empty set? Perl doesn't even have sets as part of the language. The ; in my post above is just the end of an empty statement (which returns () or undef, depending on context) to make it clear that it's not supposed to be a hash.

  • Comment on Re^5: Is { } an empty block or a bug in perl?

Replies are listed 'Best First'.
Re^6: Is { } an empty block or a bug in perl?
by davidrw (Prior) on Jul 06, 2005 at 15:27 UTC
    I wasn't commenting on your perl usage in any way -- in {;} the semicolon does make it clear that it is not supposed to be a hashref.

    I was just making a dumb point of comparing it to set logic, where if you have a set w/nothing in it, then there's something in it.

    In set logic, there's the EmptySet which I'll represent as 0. 0 is {}. So a set {} is the empty set. A set {1,2,3} has 3 elements in it and is non-empty. The set { 0 } is also non-empty, even though its only element is the empty set.

    So the parallel i had in my mind was something like this:
    PerlSet LogicDescription
    {} (or ;){} (or 0)Emtpy set/statement
    {;}{ 0 }A set containing the empty set; therefore non-empty

    I guess you could use the exampe of /dev/null -- that's really a nothing file, but the array @f = ( '/dev/null' ) is non-empty. Blah--now that i typed it, i don't like that example.

    Anyways, i'll stop rambling now.. ;)