Installing perl switch using CPAN is failing - perl

I pasted the output below (originally posted to http://pastebin.com/Sh7a8tHK)
cpan[1]> install Switch
Reading '/.cpan/Metadata'
Database was generated on Tue, 11 Dec 2012 05:55:05 GMT
Running install for module 'Switch'
Running make for R/RG/RGARCIA/Switch-2.16.tar.gz
Checksum for /.cpan/sources/authors/id/R/RG/RGARCIA/Switch-2.16.tar.gz ok
Scanning cache /.cpan/build for sizes
............................................................................DONE
CPAN.pm: Building R/RG/RGARCIA/Switch-2.16.tar.gz
Checking if your kit is complete...
Looks good
Writing Makefile for Switch
Writing MYMETA.yml and MYMETA.json
cp Switch.pm blib/lib/Switch.pm
Manifying blib/man3/Switch.3
RGARCIA/Switch-2.16.tar.gz
/usr/ccs/bin/make -- OK
Running make test
PERL_DL_NONLAZY=1 /opt/perl/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/given.t ... Useless use of numeric gt (>) in void context at t/given.t line 19.
t/given.t ... Failed 2/293 subtests
t/nested.t .. ok
t/switch.t .. ok
Test Summary Report
-------------------
t/given.t (Wstat: 0 Tests: 293 Failed: 2)
Failed tests: 2-3
Files=3, Tests=590, 1 wallclock secs ( 0.07 usr 0.01 sys + 0.47 cusr 0.00 csys = 0.55 CPU)
Result: FAIL
Failed 1/3 test programs. 2/590 subtests failed.
*** Error code 255
make: Fatal error: Command failed for target `test_dynamic'
RGARCIA/Switch-2.16.tar.gz
/usr/ccs/bin/make test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports RGARCIA/Switch-2.16.tar.gz
Running make install
make test had returned bad status, won't install without force
Failed during this command:
RGARCIA/Switch-2.16.tar.gz : make_test NO
cpan[2]>
There seems to be a problem with the module as evidenced by "Useless use of numeric gt.....", however I installed this module fine on a different machine using CPAN. This is the only module CPAN is complaining about when installing.
I am using the latest version of perl 5.16:
This is perl 5, version 16, subversion 2 (v5.16.2) built for i86pc-solaris
How can I install this module?
NOTE: Please do not tell me Switch is deprecated. I understand that.

Try doing this :
use feature qw/switch/;
See
perldoc -q switch

Refer to The Effective Perler article Use for() instead of given() if you're OK to use Perl v5.10 or later.

Patch:
--- Switch-2.16-wjgfvU/Switch.pm 2009-10-23 00:52:51.000000000 -0700
+++ Switch-2.16-wjgfvUcopy/Switch.pm 2010-08-15 17:41:38.000000000 -0700
## -146,7 +146,7 ## sub filter_blocks
die "Bad $keyword statement (problem in the code block?) near $Switch::file line ", line(substr($source,0, pos $source), $line), "\n";
};
my $code = filter_blocks(substr($source,$pos[0],$pos[4]-$pos[0]),line(substr($source,0,$pos[0]),$line));
- $code =~ s/{/{ local \$::_S_W_I_T_C_H; Switch::switch $arg;/;
+ $code =~ s/{/{ local \$::_S_W_I_T_C_H; Switch::switch($arg);/;
$text .= $code . 'continue {last}';
next component;
}

Related

Failed installation of Archive::Extract with Cpan

I have installed ActivePerl in order to run a bioinformatic tool.
after running the tool on Windows PowerShell I got this message:
Perl module Archive::Extract (in core since 2007-07-07) is not installed on this machine!
Perl modules are available for download at http://www.cpan.org/
If you have CPAN installed try the following: cpan install
Archive::Extract exit
If you are on Mac or Unix you should run cpan with sudo: sudo cpan
install Archive::Extract exit
So I tried to install it:
cpan
install Archive::Extract
and got this:
"C:\Perl64\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef Test::Harness::Switches; test_harness(0, 'blib\lib', 'blib\arch')" t/.t
t/01_Archive-Extract.t .. # Older versions of Archive::Zip may cause File::Spec warnings
See bug #19713 in rt.cpan.org. It is safe to ignore them
t/01_Archive-Extract.t .. 87/?
As I'm not adept at this I thought that I should try to install again the Archive::Zip
install Archive::Zip
but I got :
t/25_traversal.t .............. 1/41
Failed test 'Tree extraction aborted'
at t/25_traversal.t line 97.
got: '0'
expected: '2'
Looks like you failed 1 test of 41.
t/25_traversal.t .............. Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/41 subtests
(less 32 skipped subtests: 8 okay)
Test Summary Report
t/25_traversal.t (Wstat: 256 Tests: 41 Failed: 1)
Failed test: 16
Non-zero exit status: 1
Files=25, Tests=346, 18 wallclock secs ( 0.19 usr + 0.13 sys = 0.31 CPU)
Result: FAIL
Failed 1/25 test programs. 1/346 subtests failed.
dmake.exe: Error code 129, while making 'test_dynamic'
Could you please explain what's the particular problem in order to understand it and how can I solve it?
I don't know if it's a naive question as I have just started learning about command line tools, Linux, Perl etc.
Active Perl uses the ppm script to install modules, mixing this with cpan can cause the problems you have seen above. You may find that using Strawberry Perl works better for you as this comes with a c compiler that will allow you to install non pure Perl modules from cpan

trouble installing Tkx perl module in Ubuntu 14.04

In order to install a package called PrimerMapper for designing primers on Ubuntu 14.04, I need to install a perl module called Tkx but facing trouble in installing it. So, kindly assist me in resolving this bug.
For your quick and easy reference, I am pasting complete commands of installation. Thanks a lot
**adnan#adnan-Inspiron-N5110[Tkx-1.09]** sudo perl Makefile.PL
Writing Makefile for Tkx
Writing MYMETA.yml and MYMETA.json
**adnan#adnan-Inspiron-N5110[Tkx-1.09]** sudo make
Skip blib/lib/Tkx/Tutorial.pod (unchanged)
Skip blib/lib/Tkx.pm (unchanged)
Skip blib/lib/Tkx/MegaConfig.pm (unchanged)
Skip blib/lib/Tkx/LabEntry.pm (unchanged)
cp tkx-prove blib/script/tkx-prove
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/tkx-prove
cp tkx-ed blib/script/tkx-ed
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/tkx-ed
Manifying blib/man1/tkx-ed.1p
Manifying blib/man3/Tkx::MegaConfig.3pm
Manifying blib/man3/Tkx::LabEntry.3pm
Manifying blib/man3/Tkx::Tutorial.3pm
Manifying blib/man3/Tkx.3pm
**adnan#adnan-Inspiron-N5110[Tkx-1.09]** sudo make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/LabEntry.t ...... 1/2 (in cleanup) Can't call method "DeleteCommand" on an undefined value at /usr/local/lib/perl/5.18.2/Tcl.pm line 655 during global destruction.
t/LabEntry.t ...... ok
t/mega-config.t ... ok
t/mega.t .......... ok
t/nul-char.t ...... ok
t/tcl-callback.t .. 1/7 (in cleanup) Can't call method "DeleteCommand" on an undefined value at /usr/local/lib/perl/5.18.2/Tcl.pm line 655 during global destruction.
t/tcl-callback.t .. ok
t/tcl.t ........... 1/18 # Test 18 got: "Tcl error 'Foo at /usr/local/lib/perl/5.18.2/Tcl.pm line 585.\n' while invoking scalar result call:\n\t\"error Foo\" at /usr/local/lib/perl/5.18.2/Tcl.pm line 588.\n\tTcl::call('Tcl=SCALAR(0x1b2ce48)', 'error', 'Foo') called at /media/windows/NGS/GATK_FINAL_PIPELINE/PrimerMapper-master/Tkx-1.09/blib/lib/Tkx.pm line 329\n\teval {...} called at /media/windows/NGS/GATK_FINAL_PIPELINE/PrimerMapper-master/Tkx-1.09/blib/lib/Tkx.pm line 329\n\tTkx::i::call('error', 'Foo') called at /media/windows/NGS/GATK_FINAL_PIPELINE/PrimerMapper-master/Tkx-1.09/blib/lib/Tkx.pm line 51\n\tTkx::AUTOLOAD('Foo') called at t/tcl.t line 38\n\teval {...} called at t/tcl.t line 38\n" (t/tcl.t at line 39)
# Expected: "Foo at t/tcl.t line 38.\n"
# t/tcl.t line 39 is: ok($#, "Foo at #{[__FILE__]} line #{[__LINE__ - 1]}.\n");
t/tcl.t ........... Failed 1/18 subtests
t/tk.t ............ 12/12 (in cleanup) Can't call method "DeleteCommand" on an undefined value at /usr/local/lib/perl/5.18.2/Tcl.pm line 655 during global destruction.
t/tk.t ............ ok
t/utf8.t .......... ok
Test Summary Report
-------------------
t/tcl.t (Wstat: 0 Tests: 18 Failed: 1)
Failed test: 18
Files=8, Tests=54, 9 wallclock secs ( 0.15 usr 0.03 sys + 1.85 cusr 0.31 csys = 2.34 CPU)
Result: FAIL
Failed 1/8 test programs. 1/54 subtests failed.
make: *** [test_dynamic] Error 255
GAAS/Tkx-1.09.tar.gz
/usr/bin/make test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports GAAS/Tkx-1.09.tar.gz
Running make install
make test had returned bad status, won't install without force
Failed during this command:
GAAS/Tkx-1.09.tar.gz : make_test NO
The error is that the tests of the module don't pass successfully.
One thing I would try first is to try to install the module with cpan or cpanminus (cpan Tkx or cpanm Tkx). You (or the Makefile.PL) may have missed something that could be causing this error.
I see you already opened a bug report on CPAN. You can see in cpantesters that this module has the tests broken (you could check with your particular Perl version) and there is also another bug report from 5 years ago reporting broken tests for the very same version that's currently on CPAN (1.09).
Considering this I think your options is to skip the tests and see if it works for your purposes.
I recently adopted Tkx and published release 1.10, which allows installation to proceed despite the t/tcl.t test 18 failure.
The test failure appears to have been caused by unexpected but minor changes to error message formatting in newer Tcl.pm. Pending the issue actually being fixed, it is not something which Tkx should abort installation over.
There's already a packaged version of Tkx for Ubuntu, so all it should take to get Tkx and any of its dependencies is:
sudo apt-get install libperl-tkx

Why does installing Number::Format on Win 64 fail?

I'm trying to install Number::Format to use with Padre on Windows:
cpanm Number::Format
I get the following error. How can I fix this?
cpanm (App::cpanminus) 1.7034 on perl 5.020002 built for MSWin32-x86-multi-thread-64int
Work directory is C:\Users\admin/.cpanm/work/1433356714.11300
You have make C:\STRAWB~1\c\bin\dmake.exe
You have LWP 6.08
Falling back to Archive::Tar 2.04
Searching Number::Format () on cpanmetadb ...
--> Working on Number::Format
Fetching http://www.cpan.org/authors/id/W/WR/WRW/Number-Format-1.73.tar.gz
-> OK
Unpacking Number-Format-1.73.tar.gz
Entering Number-Format-1.73
Checking configure dependencies from META.yml
Configuring Number-Format-1.73
Running Makefile.PL
Checking if your kit is complete...
Looks good
Generating a dmake-style Makefile
Writing Makefile for Number::Format
Writing MYMETA.yml and MYMETA.json
-> OK
Checking dependencies from MYMETA.json ...
Checking if you have POSIX 0 ... Yes (1.38_03)
Checking if you have ExtUtils::MakeMaker 0 ... Yes (6.98)
Checking if you have Test::More 0 ... Yes (1.001014)
Checking if you have Carp 0 ... Yes (1.3301)
Building and testing Number-Format-1.73
cp Format.pm blib\lib\Number\Format.pm
C:\Perl\bin\perl.exe "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib\lib', 'blib\arch')" t/*.t
t/format_bytes.t ..... ok
t/format_negative.t .. ok
t/format_number.t .... ok
t/format_picture.t ... ok
t/format_price.t ..... ok
Invalid sep_by_space value at t/locale.t line 77.
# Looks like your test exited with 255 just after 5.
t/locale.t ...........
Dubious, test returned 255 (wstat 65280, 0xff00)
All 5 subtests passed
(less 3 skipped subtests: 2 okay)
t/object.t ........... ok
t/round.t ............ ok
t/unformat_number.t .. ok
Test Summary Report
-------------------
t/locale.t (Wstat: 65280 Tests: 5 Failed: 0)
Non-zero exit status: 255
Files=9, Tests=147, 1 wallclock secs ( 0.11 usr + 0.03 sys = 0.14 CPU)
Result: FAIL
Failed 1/9 test programs. 0/147 subtests failed.
dmake.exe: Error code 255, while making 'test_dynamic'
-> FAIL Installing Number::Format failed. See C:\Users\admin\.cpanm\work\1433356714.11300\build.log for details. Retry with --force to force install it.
There's already a bug report for this. The issue hasn't been fixed yet, but somebody uploaded a patch that you can try:
Reason seems to be the POSIX module, which returns many "-1" values where Number::Format->new() expects missing hash keys... I was able to successfully test and install by using the attached patch as a workaround. But it might be smarter to fix this problem in the POSIX module.
Any time a module fails to build, you should check the CPAN Testers report. The tests are failing for Perl 5.20.0 on Window x64, so it's not just you.

Trouble installing Time::Out Module in Perl

I'm trying to install Time::Out.
The error looks to be coming from the tar file. Do I need to install anything more? I get the following:
install Time::Out
Reading 'C:\Perl\cpan\Metadata'
Database was generated on Thu, 05 Jun 2014 08:53:02 GMT
Running install for module 'Time::Out'
Checksum for C:\Perl\cpan\sources\authors\id\P\PA\PATL\Time-Out-0.11.tar.gz ok
Scanning cache C:\Perl/cpan/build for sizes
............................................................................DONE
Time-Out-0.11/
Time-Out-0.11/MANIFEST
Time-Out-0.11/t/
Time-Out-0.11/t/01_init.t
Time-Out-0.11/t/pod.t
Time-Out-0.11/t/03_exceptions.t
Time-Out-0.11/t/02_usage.t
Time-Out-0.11/Out.pod
Time-Out-0.11/README
Time-Out-0.11/Out.pm
Time-Out-0.11/META.yml
Time-Out-0.11/Makefile.PL
Time-Out-0.11/Changes
Configuring P/PA/PATL/Time-Out-0.11.tar.gz with Makefile.PL
Set up gcc environment - 3.4.5 (mingw-vista special r3)
Checking if your kit is complete...
Looks good
Generating a dmake-style Makefile
Writing Makefile for Time::Out
Writing MYMETA.yml and MYMETA.json
PATL/Time-Out-0.11.tar.gz
C:\Perl\bin\perl.exe Makefile.PL INSTALLDIRS=site -- OK
Running make for P/PA/PATL/Time-Out-0.11.tar.gz
cp Out.pm blib\lib\Time\Out.pm
cp Out.pod blib\lib\Time\Out.pod
PATL/Time-Out-0.11.tar.gz
C:\Perl\site\bin\dmake.exe -- OK
Running make test
C:\Perl\bin\perl.exe "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Te
st::Harness::Switches; test_harness(0, 'blib\lib', 'blib\arch')" t/*.t
t/01_init.t ........ ok
t/02_usage.t .......
The following tests use sleep() so please be patient...
t/02_usage.t ....... 10/15 # Failed test 11 in t/02_usage.t at line 97
# t/02_usage.t line 97 is: ok($# eq 'timeout') ;
t/02_usage.t ....... 11/15 # Failed test 12 in t/02_usage.t at line 108
# t/02_usage.t line 108 is: ok($# eq 'timeout') ;
# Failed test 13 in t/02_usage.t at line 109
# t/02_usage.t line 109 is: ok(!$seen) ;
t/02_usage.t ....... Failed 3/15 subtests
(less 1 skipped subtest: 11 okay)
t/03_exceptions.t .. ok
t/pod.t ............ skipped: Test::Pod 1.00 required for testing POD
Test Summary Report
-------------------
t/02_usage.t (Wstat: 0 Tests: 15 Failed: 3)
Failed tests: 11-13
Files=4, Tests=19, 23 wallclock secs ( 0.09 usr + 0.05 sys = 0.14 CPU)
Result: FAIL
Failed 1/4 test programs. 3/19 subtests failed.
dmake.exe: Error code 255, while making 'test_dynamic'
PATL/Time-Out-0.11.tar.gz
C:\Perl\site\bin\dmake.exe test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports PATL/Time-Out-0.11.tar.gz
Failed during this command:
PATL/Time-Out-0.11.tar.gz : make_test NO
Is there another module I can use similar to the Time::Out? Besides alarm?
Per the Time::Out documentation, it does not work for blocking IO on windows. This means - at a minimum - that the tests will fail. You can skip the tests from the cpan shell using force install Time::Out, but this may mean that it doesn't work for your purposes.

Why this error "Can't locate object method new"?

I am trying to use HTML::WikiConverter::MediaWiki which I have installed using yum install perl-HTML-WikiConverter-MediaWiki.noarch.
According to the perldoc should I be able to
use HTML::WikiConverter;
my $wc = new HTML::WikiConverter( dialect => 'MediaWiki' );
but then I get
Can't locate HTML/WikiConverter.pm in #INC (#INC contains: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at ./test.pl line 3.
BEGIN failed--compilation aborted at ./test.pl line 3.
If I try
use HTML::WikiConverter::MediaWiki;
my $wc = new HTML::WikiConverter( dialect => 'MediaWiki' );
then I get
Can't locate object method "new" via package "HTML::WikiConverter" at ./test.pl line 4.
If I try
use HTML::WikiConverter::MediaWiki;
my $wc = new HTML::WikiConverter::MediaWiki( dialect => 'MediaWiki' );
then I get
Can't locate object method "new" via package "HTML::WikiConverter::MediaWiki" at ./test.pl line 4.
Question
Can anyone see what's wrong?
Update
[root#rt ~]# cpan HTML::WikiConverter
Reading '/root/.cpan/Metadata'
Database was generated on Fri, 09 Mar 2012 16:12:01 GMT
Running install for module 'HTML::WikiConverter'
Running make for D/DI/DIBERRI/HTML-WikiConverter-0.68.tar.gz
Checksum for /root/.cpan/sources/authors/id/D/DI/DIBERRI/HTML-WikiConverter-0.68.tar.gz ok
CPAN.pm: Building D/DI/DIBERRI/HTML-WikiConverter-0.68.tar.gz
Checking if your kit is complete...
Looks good
Writing Makefile for HTML::WikiConverter
Writing MYMETA.yml and MYMETA.json
cp lib/HTML/WikiConverter.pm blib/lib/HTML/WikiConverter.pm
cp lib/HTML/WikiConverter/Normalizer.pm blib/lib/HTML/WikiConverter/Normalizer.pm
cp lib/HTML/WikiConverter/WebApp.pm blib/lib/HTML/WikiConverter/WebApp.pm
cp lib/HTML/WikiConverter/Dialects.pod blib/lib/HTML/WikiConverter/Dialects.pod
cp bin/html2wiki blib/script/html2wiki
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/html2wiki
Manifying blib/man1/html2wiki.1
Manifying blib/man3/HTML::WikiConverter.3pm
Manifying blib/man3/HTML::WikiConverter::Normalizer.3pm
Manifying blib/man3/HTML::WikiConverter::Dialects.3pm
Manifying blib/man3/HTML::WikiConverter::WebApp.3pm
DIBERRI/HTML-WikiConverter-0.68.tar.gz
/usr/bin/make -- OK
'YAML' not installed, will not store persistent state
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00-load.t ........... 1/1 # Testing HTML::WikiConverter 0.68, Perl 5.008008, /usr/bin/perl
t/00-load.t ........... ok
t/01-normalizer.t ..... ok
t/01-wikiconverter.t .. 1/53 request for <http://diberri.dyndns.org/wikipedia/html2wiki-old/test.html> failed at t/01-wikiconverter.t line 162
# Looks like you planned 53 tests but ran 35.
# Looks like your test exited with 22 just after 35.
t/01-wikiconverter.t .. Dubious, test returned 22 (wstat 5632, 0x1600)
Failed 18/53 subtests
t/boilerplate.t ....... ok
t/pod-coverage.t ...... ok
t/pod.t ............... ok
Test Summary Report
-------------------
t/01-wikiconverter.t (Wstat: 5632 Tests: 35 Failed: 0)
Non-zero exit status: 22
Parse errors: Bad plan. You planned 53 tests but ran 35.
Files=6, Tests=53, 1 wallclock secs ( 0.06 usr 0.04 sys + 0.60 cusr 0.12 csys = 0.82 CPU)
Result: FAIL
Failed 1/6 test programs. 0/53 subtests failed.
make: *** [test_dynamic] Error 255
DIBERRI/HTML-WikiConverter-0.68.tar.gz
/usr/bin/make test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports DIBERRI/HTML-WikiConverter-0.68.tar.gz
Running make install
make test had returned bad status, won't install without force
[root#rt ~]#
You don't have HTML::WikiConverter installed. So, install it. From the command line, do
cpan HTML::WikiConverter
and not only will HTML::WikiConverter be installed, but any missing prerequisites should be installed as well.
Also, depending your user permissions, you may need to run that command as root (ie sudo cpan HTML::WikiConverter).
It sounds like you don't have the base behavior HTML::WikiConverter installed in a place where you need it. I don't know why the use base in HTML::WikiConverter::MediaWiki isn't failing, though. HTML::WikiConverter is a separate distribution from HTML::WikiConverter::MediaWiki and HWM uses HW's constructor, so it makes sense that if you can't load this module, Perl does not recognize a dispatch for new.
When you ran yum install perl-HTML-WikiConverter-MediaWiki.noarch did you get any output that mentioned installing perl-HTML-WikiConverter?
What output do you get from running rpm -q perl-HTML-WikiConverter and rpm -q perl-HTML-WikiConverter-MediaWiki.
Which version of Perl are you running (perl -v), where is it installed (which perl) and how was it installed (using yum or by downloading source code and compiling it)?
I suspect your system is getting confused between yum-installed CPAN modules and cpan-install CPAN modules. It's never a good idea to mix the two on the same system. If you want to use the system version of Perl then only install CPAN modules using yum. If you want to install CPAN modules using cpan (or cpanp or cpanm) then build your own version of Perl and install it away from the standard Perl location.