Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re^7: Parrot Monks? (one ring)

by TimToady (Parson)
on Jan 10, 2005 at 18:25 UTC ( #421028=note: print w/ replies, xml ) Need Help??


in reply to Re^6: Parrot Monks? (one ring)
in thread Parrot Monks?

There are several defined ways of differentiating scripts as a whole. A minimal approach allows for a bare literal in void context at the beginning:

5; print "I'm Perl 5 code\n";
vs
6; say "I'm Perl 6 code";
Or if you want to make sure strictness is on, you use
use 6.0;
or
module;
Those are okay for the script as a whole, but I hate to think about what happens when people start cutting and pasting snippets. Certainly Perl 6 could disallow snippets starting with "5;", but Perl 5 would currently accept a "6;" unless you had warnings turned on. One could go with "5:" and "6:" instead, but that's a syntax error in Perl 5 currently.

Of course, there's always the tried and true:

print "I'm Perl 5 code\n"; # Perl 5
vs
say "I'm Perl 6 code"; # Perl 6
But that doesn't help much with cut-and-paste errors...


Comment on Re^7: Parrot Monks? (one ring)
Select or Download Code
Re^8: Parrot Monks? (one ring)
by tye (Cardinal) on Jan 10, 2005 at 18:44 UTC

    I don't expect Perl to be able to prevent people from pasting VB code into the middle of a Perl script. Neither do I require that Perl to be able to jump between versions of the language willy-nilly (though a limited version of such a feat wouldn't surprise me much). (:

    My point is to have a standard way for people to declare what language they are using and have that way make sense to both the Perl interpretter and to other humans reading their code. If a person cuts and pastes snippets, then they should cut'n'paste snippets of the same language (not an unreasonable requirement).

    I like "use 5;" and "use 6;" a lot because they are quite clear and will make sense to people who know very little about Perl 6 (and will work at the top of snippets to the point of complaining clearly, even with a lot of cut'n'pasting).

    I also like the various Perl6 ways of turning strictures on like "module;".

    It would be cool if "use strict;" also forced Perl 5 interpretation [since that isn't how you turn on strictures in Perl6, though I suspect "no strict qw(...)" still works there(?)]. This way, a huge volume of existing code will "just (continue to) work" and will also be automatically labeled as "this is Perl 5 code".

    - tye        

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://421028]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (10)
As of 2014-08-01 12:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Who would be the most fun to work for?















    Results (13 votes), past polls