in reply to App::perlbrew - Compiling Perl with thread support
Here is perlbrew(0.58) help, section "install":
COMMAND: INSTALL
install options perl-<version>
install options <version>
Build and install the given version of perl.
Version numbers usually look like "5.x.xx", or "perl-5.xx.x-RCx" for
release candidates.
The specified perl is downloaded from the offical CPAN website or
from the mirror site configured before.
To configure mirror site, invoke `mirror` command.
install options perl-blead
install options blead
A special way to install the blead version of perl, which is
downloaded from this specific URL regardless of mirror settings:
http://perl5.git.perl.org/perl.git/snapshot/blead.tar.gz
install options /path/to/perl/git/checkout/dir
Build and install from the given git checkout dir.
install options /path/to/perl-5.14.0.tar.gz
Build and install from the given archive file.
install options http://example.com/mirror/perl-5.12.3.tar.gz
Build and install from the given URL. Supported URL schemes are
"http://", "https://", "ftp://" and "file://".
Options for "install" command:
-f --force Force installation
-j $n Parallel buildng and testing. ex. C<perlbrew install -j 5 perl-5.14.2>
-n --notest Skip testing
--as Install the given version of perl by a name.
ex. C<perlbrew install perl-5.6.2 --as legacy-perl>
-D,-U,-A Switches passed to perl Configure script.
ex. C<perlbrew install perl-5.10.1 -D usemymalloc -U uselargefiles>
--sitecustomize $filename
Specify a file to be installed as sitecustomize.pl
By default, all installations are configured after their name like this:
sh Configure -de -Dprefix=$PERLBREW_ROOT/perls/<name>
Therefore, the command to install perl 5.16.0 with thread support and to give that perl the name "perl-5.16.0t" should be this:
$ perlbrew install --as perl-5.16.0t -Dusethreads perl-5.16.0
And in fact, I tried that command on Mac OSX 10.6.8, and I was able to successfully install a perl named perl-5.16.0t:
$ perlbrew list * perl-5.16.0 #this perl was already installed perl-5.16.0t #this is the new install $perlbrew use perl-5.16.0t $perlbrew list perl-5.16.0 * perl-5.16.0t
And here's a test program:
use strict; use warnings; use 5.012; use threads; use threads::shared; my $counter :shared; $counter = 1; my $name = 'Joe'; sub do_stuff { my $thread_id = shift; sleep rand 10; say "thread number $thread_id"; say "count: $counter"; $counter++; say $name; $name = "Cathy"; } my @threads; for my $thread_number (1..10) { push @threads, threads->create('do_stuff', $thread_number); } for (@threads) { $_->join; } --output:-- thread number 5 count: 1 Joe thread number 9 count: 2 Joe thread number 3 count: 3 Joe thread number 7 count: 4 Joe thread number 10 count: 5 Joe thread number 4 count: 6 Joe thread number 6 count: 7 Joe thread number 8 count: 8 Joe thread number 1 count: 9 Joe thread number 2 count: 10 Joe
To set perl-5.16.0t as the default when you start up a shell:
$ perlbrew switch perl-5.16.0t
It's possible that the -f option for the perlbrew alias command is the same as for the install command. But in any case, options are optional--that is what the brackets around the option mean--so if you don't know what an option does, then don't use that option.
perlbrew help also says this:
Generic command options: -q --quiet Be quiet on informative output message. -v --verbose Tell me more about it.
The -v option isn't used to specify the perl version, so you can omit it.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: App::perlbrew - Compiling Perl with thread support
by kcott (Archbishop) on Jan 21, 2013 at 04:44 UTC |