http://www.perlmonks.org?node_id=739352


in reply to Re: An Apology for Puncish
in thread An Apology for Puncish

I'd disagree that these are generally 'commonly used constructs', with the exceptions of $_, $!, and $@. Most of them seem to only be needed once in a blue moon, in fact.

I agree with your logic otherwise, just not with the specific premise that these are the commonly used values.

Replies are listed 'Best First'.
Re^3: An Apology for Puncish
by rir (Vicar) on Jan 27, 2009 at 21:43 UTC
    I think many of these short variable names were chosen to deal with the limits of interpreters on 1960s-ish machines. At that time, some of the principles underlying Huffman encoding were in play.

    Perl just adopted many of these names as part of its mission. That Larry Wall chose to preserve the distinctive nature of this namespace and keep its expansion out of the spaces that would be commonly chosen for user tasks seems to me to be one of the insightful decisions in Perl's design. That it continues with ${^Word} style names is good.

    Be well,
    rir

    Update: very minor language cleanup

    Update: reworked poor sentence: the struck out stuff. You can't expand an ad hoc namespace because you're creating a new one. The underlined text replaces: add most of his other predefined variables into a namespace that ... words are failing me a bit, but he kept the namespace distinctive and

Re^3: An Apology for Puncish
by moritz (Cardinal) on Jan 27, 2009 at 21:30 UTC
    "Commonly used" depends very much on what programs you write. I write one-liners very often that extract one or two columns of data from somewhere, so I do use $0 very often, probably more often then explicit $_.

    I'm sure that's different if you spend most time on highly engineered OO programs or other areas.

Re^3: An Apology for Puncish
by Your Mother (Archbishop) on Jan 27, 2009 at 21:25 UTC

    I think it depends on what you mean by "used." Many of them are used in the background constantly. $. and $/ (at least?) are implicit in every file read, for example.