Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

Re^4: Unexpected Python News

by liz (Monsignor)
on Mar 21, 2014 at 21:05 UTC ( #1079358=note: print w/replies, xml ) Need Help??

in reply to Re^3: Unexpected Python News
in thread Unexpected Python News

So now, what are the solutions to the problem when you want or need additional modules or to be more up to date with your Perl runtime environment?
The real important difference between Perl 5 and Perl 6, is the way use works. In Perl 5, use is global. In Perl 6, use is lexical.

This means that only in the lexical scope where a use command is executed, will you be able to "see" the module having been loaded. In other words: each lexical scope has its own "universe" of code. Only if you need to have two different versions of the same module(name) in the same lexical scope, do you need to provide an alias for one of them (in that scope only, of course).

This also means that installed modules of different authors and different versions, will be installed side-by-side: there is no possibility of collision in the installation of modules.

So, if you have a piece of code that you know works with version 1.20 of module Foo, you probably should specify that:

use Foo:ver<1.20>;
If this is part of your own module in a distribution, you should make sure that the META6.json file in that distribution, so indicates the dependency on that version of the distribution in which that module lives. An installer will then install the necessary files side-by-side with any other module Foo that is installed (if it isn't installed already).

In conclusion: the problems that Perl 5 has with versioning of installed modules and dependencies, simply do not (have to) exist in Perl 6: if you are clear in what you need, the system will provide it to you without interfering with anything else.

For more information, see s22 as it is currently evolving.

Replies are listed 'Best First'.
Re^5: Unexpected Python News
by Jenda (Abbot) on Mar 23, 2014 at 09:17 UTC

    The real important difference between Perl 5 and Perl 6 is that one is a programming language with an usable implementation and the other is Perl 6. But I'm sure Perl 6 will be incredible and contain everything anyone ever conceived. It's gonna be finished in about a year from whenever you read this post. You can come back to it any time and Perl 6 will still be ready in about a year.

    Enoch was right!
    Enjoy the last years of Rome.

      This comment mentions Perl 6. Perl 6 is immature, especially in comparison to the rock solid Perl 5

      Dear reader,

      The Rakudo Perl 6 compiler is a usable implementation. It's not remotely where P6ers would like it to be and there are only a handful of users but folk are using it today to get $dayjob stuff done.

      Dear monks,

      liz, who posted the comment Jenda replied to, is highly respected in the Perl community for her contributions. (She just won a White Camel award.) This was her fist post here at the monastery in a couple years. You can contribute to the Perl 6 project by simply responding to her -- via substantive constructive engagement, or even just encouragement, either here or on #perl6.

        By folk you mean "one person a year ago". Last year it was "about a year away". This year it's "about a year away".

        Pure clownshoes.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (7)
As of 2018-10-20 14:38 GMT
Find Nodes?
    Voting Booth?
    When I need money for a bigger acquisition, I usually ...

    Results (118 votes). Check out past polls.