From Citizendium
Jump to navigation Jump to search
This article is developing and not approved.
Main Article
Related Articles  [?]
Bibliography  [?]
External Links  [?]
Citable Version  [?]
Code [?]
Addendum [?]
To learn how to update the categories for this article, see here. To update categories, edit the metadata template.
 Definition Dynamic, interpreted programming language with good string processing and powerful regular expression engine. [d] [e]
Checklist and Archives
 Workgroup category Computers [Categories OK]
 Talk Archive none  English language variant Not specified

I'd like to import the "good article" version of wikipedia's Perl entry. Is there an efficient way of importing articles from there? or do I have to copy/paste the source? --Joey Kelly

Unfortunately, no, there isn't. See: CZ:How to convert Wikipedia articles to Citizendium articles, which I am about to fix up as there seems to be a demand for it... --Larry Sanger 16:58, 14 February 2007 (CST)

Now I'm really curious what "the arbitrary limitations of many scripting languages at the time" were. Really. --Markus Baumeister 16:41, 7 March 2007 (CST)

I've been lurking around for quite a while and I thought I should finally contribute. When I wrote the new Perl page, I tried to eliminate all wording from the original stump that could be construed as originating from WP (sorry, now we'll never know what the "arbitrary limitations" are ;) ). I actually have one advantage: since I currently live in China, it is very awkward to read WP (you need to use proxies because of the "Great Firewall") *) so I wasn't even tempted to copy anything from them.
I wrote this first draft on my private mediawiki, the CZ templates are of course not available, e.g. my citation style is way off. Since I am relocating to Europe soon (temporarily for 14 months), starting June 10 I won't be able to use my computers for several weeks. That is a good time for all of you to mess it up thoroughly ;) !
*) this is how I happened to stumble over CZ in the first place - now of course I'm convinced it is the better way --Georg Heidenreich 09:02, 31 May 2007 (CDT) (newbie)

Well done, Georg--thanks for the article on one of my favorite computer subjects. --Larry Sanger 09:13, 31 May 2007 (CDT)


The article lists scalars, arrays and hashes as the Perl data types, which is ok because they're the most important, but it then says "All variables in Perl are of these three data types" and "Other data types are abstractions such as filehandles, subroutines, symbol table entries, etc."

I think those two lines are taking the white lie a little too far. Globs are certainly their own first order data type, complete with a sigil (*color) and bear mentioning.

PS I realize the perldata man page also says three data types, it's caught in that same white lie.

--Michael G Schwern 15:51, 8 November 2007 (CST)

I'm not so sure if we should have Globs as a fully equal forth data type - one reason is in your own 'Scope' paragraph: it doesn't apply to lexicals. Although you are right from a technical viewpoint, to me they are a "wormhole" to let me do things that otherwise would be much too complicated or even impossible. Actually, I see a tendency to eliminate the necessities for using globs with new features or modules (e.g. filehandles in version 5). --Georg Heidenreich 18:43, 8 November 2007 (CST)

I thought about it some and decided that leaving the detail of globs out of an encyclopedia article is ok. I was in documentation mode when I wrote that. --Michael G Schwern 18:58, 13 November 2007 (CST)


The "scope" paragraph is very confusing. Part of the problem is its smashing together several very similar concepts into one paragraph. I will separate it out into several discussions, first global vs lexical with "local" being discussed as part of global. Then the various ways to declare variables.

Update: I have expanded the "scope" section to split the discussion of global and lexical scopes. I removed the "local" discussion, as it's confusing, and should be added on later. I believe it best if all the special scope modifiers, "our", "state" and "local" be put in their own section. Now the "scope" section is even more redundant with the later "Namespace and scope" section and should be merged.

--Michael G Schwern 15:52, 8 November 2007 (CST)

Reply: Thanks, beautifully done! I was not happy with it myself, that paragraph was indeed confus{ed|ing}. Of course the other paragraph 'Namespace and scope' is now totally redundant; the topic 'package' must however re-appear in a better 'Modules and objects' paragraph, which is still a stub.
Although I have been using perl objects all the time, I have no real background in proper OO programming, so I didn't want to bungle the more interesting angles, like inheritance. --Georg Heidenreich 18:43, 8 November 2007 (CST)

other considerations

  • of course I played with the paragraphs before I committed the article. One aim was NOT to let the article get too long (I have in the meantime read the WP article - it is too long IMHO), and to keep the paragraphs in some sort of balance, such as matching levels of details. We should do some pruning when everything has been written.
  • In July Carl Jantzen re-inserted the "Contents is from WP" marker because I kept the first sentence of the original stub which probably was ripped from WP. We should change the first sentence (but what is original in a "The goose is a bird" type of sentence?) because the remaining material is 100% CZ. Any thoughts?

--Georg Heidenreich 18:43, 8 November 2007 (CST)

Love a language, but sell it with restraint

That those who authored this article love Perl is evident, and I think that's great. I think it would be more effective if all blatant praise and superlatives were, well, removed. In order not to oversell (which has the potential negative consequence of turning readers off), I think the article should state as neutrally as possible the indisputable things about Perl--the language's success will then be evident. I have revised the first paragraph as an illustration of how that might be done.Pat Palmer 05:11, 9 November 2007 (CST)

I like it. --Michael G Schwern 18:56, 13 November 2007 (CST)

Is it really duck typing?

The second paragraph tells that Perl has duck typing, but that is a very disputable statement. Perl has dynamic typing where values have type and not variables, but duck typing is about inspecting the methods an object supports and deciding its type. As far as I know Perl never does this. So I believe that the 'duck typing' part must be removed.

I am almost certain of my position, but am asking here in order to be completely sure it is correct.

--SundaraRaman Ramalingam 11:42, 18 August 2009 (UTC)