Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

Re^6: Parrot Monks? (one ring)

by tye (Sage)
on Jan 09, 2005 at 22:28 UTC ( #420761=note: print w/replies, xml ) Need Help??

in reply to Re^5: Parrot Monks? (pirates)
in thread Parrot Monks?

I'd rather have the Perl language specify how you tell Perl 5 code from Perl 6 code so that the problem is solved all over the world instead of each place that shows Perl code trying to come up with their own inconsistent ways of doing so such that none of them will ever be very thoroughly applied.

- tye        

Replies are listed 'Best First'.
Re^7: Parrot Monks? (one ring)
by TimToady (Parson) on Jan 10, 2005 at 18:25 UTC
    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";
    6; say "I'm Perl 6 code";
    Or if you want to make sure strictness is on, you use
    use 6.0;
    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
    say "I'm Perl 6 code"; # Perl 6
    But that doesn't help much with cut-and-paste errors...

      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?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://420761]
[Lady_Aleena]: shmem, that is understandable! The two examples in File::Find don't make sense to me on a quick glance.
[marioroy]: LA if the find worked from Unix command line, or does it not. Likely a quoting issue inside Perl qx.
[Lady_Aleena]: marioroy, the find worked fine at the command line.
[marioroy]: LA, yeah. than there's no reason why it cannot work inside qx. But chatting is hard in PM. I cannot see the code now.
[shmem]: Lady_Aleena: sometimes a quick glance isn't enough.

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (8)
As of 2017-04-23 20:58 GMT
Find Nodes?
    Voting Booth?
    I'm a fool:

    Results (432 votes). Check out past polls.