#1
  1. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Jun 2013
    Posts
    2
    Rep Power
    0

    Software error ..plz help


    I am getting the following error upon compilation of my blast.cgi program


    XSLoader::load('Your::Module', $Your::Module::VERSION) at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/XSLoader.pm line 25.
    Compilation failed in require at /usr/lib/perl5/5.8.8/File/Temp.pm line 137.
    BEGIN failed--compilation aborted at /usr/lib/perl5/5.8.8/File/Temp.pm line 137.
    Compilation failed in require at blast.cgi line 5.
    BEGIN failed--compilation aborted at blast.cgi line 5. <br><br>


    Please help me out.




    #!/usr/bin/perl
    use strict;
    use warnings;
    use Adrian::Goodies ':dirs';
    use File::Temp;
    use File::Spec::Functions;
    use Env::Path 'PATH';

    PATH->Append(BLAST_BIN_DIR) if BLAST_BIN_DIR;

    #my %VALID_PROGS = (blastn => 'allnucl', tblastn => 'allnucl', tblastx => 'allnucl',
    # blastp => 'allprot', blastx => 'allprot');
    #my %VALID_DBS = (allnucl => 'allnucl', nucl => 'allnucl', allflanks => 'allnucl',
    # flanks => 'allnucl', allprot => 'allprot', prot => 'allprot');

    my $cgi = CGI->new();

    my ($title, $prog, $db, $seq) = ($cgi->param('title') || "notitle" . time(),
    $cgi->param('prog'),
    $cgi->param('db'),
    $cgi->param('sequence'));



    $title =~ s/\s/ /g;
    $title = "notitle" . time() if $title eq '';
    $seq =~ s/[^A-Za-z]//g;
    if ($cgi->request_method() eq 'POST' #and exists $VALID_PROGS{$prog} and
    #exists $VALID_DBS{$db}
    and $seq) {
    my $seqfile = File::Temp->new();
    open (my $fh, '>', $seqfile);
    print $fh ">$title\n";
    print $fh $seq, "\n";
    close $fh;
    my $execstring;
    # currently is secure
    if ($prog eq "blastp" and $db eq "allnucl"){
    $execstring = "/home/groupii/ncbi-blast/bin/$prog -db \"" . catfile(BLAST_DB_DIR, "allprot") . "\" -max_target_seqs 10 -word_size 5 -evalue 100 -query \"$seqfile\"";
    } elsif ($prog eq "blastx" and $db eq "allnucl"){
    $execstring = "/home/groupii/ncbi-blast/bin/$prog -db \"" . catfile(BLAST_DB_DIR, "allprot") . "\" -max_target_seqs 10 -word_size 5 -evalue 100 -query \"$seqfile\"";
    } elsif ($prog eq "blastn") {
    $execstring = "/home/groupii/ncbi-blast/bin/$prog -db \"" . catfile(BLAST_DB_DIR, $db) . "\" -max_target_seqs 10 -word_size 5 -penalty -3 -reward 2 -task blastn -evalue 100 -query \"$seqfile\"";
    } else {
    $execstring = "/home/groupii/ncbi-blast/bin/$prog -db \"" . catfile(BLAST_DB_DIR, $db) . "\" -max_target_seqs 10 -word_size 5 -evalue 100 -query \"$seqfile\"";
    }
    print $cgi->header('text/plain');
    print qx{$execstring};
    }
    else {
    print $cgi->redirect('../blast.html');
    }
    exit;

    </code>
  2. #2
  3. !~ /m$/
    Devshed Specialist (4000 - 4499 posts)

    Join Date
    May 2004
    Location
    Reno, NV
    Posts
    4,221
    Rep Power
    1809
    It says File::Temp is failing to load, so you might want to reinstall that. Just update it from CPAN.

    But I have no idea what Adrian::Goodies is. Does that load CGI.pm, because you are calling that module later but never loading it. If that module is doing something strange, it might be the source of your problems.

    Also:

    Bareword "BLAST_BIN_DIR" not allowed while "strict subs" in use at ./tst.pl line 10.
  4. #3
  5. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Jun 2013
    Posts
    2
    Rep Power
    0
    Originally Posted by keath
    It says File::Temp is failing to load, so you might want to reinstall that. Just update it from CPAN.

    But I have no idea what Adrian::Goodies is. Does that load CGI.pm, because you are calling that module later but never loading it. If that module is doing something strange, it might be the source of your problems.

    Also:

    This program is installed on my lab's website on the college server. I tried reinstalling the File:Temp.pm and XSLoader.pm on the server's perl lib directory. (Note: These two weren't there at that time). Now a new error involving DynaLoader.pm is showing up:

    Fcntl object version 1.05 does not match $Fcntl::VERSION 1.11 at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 253.
    Compilation failed in require at /usr/lib/perl5/5.8.8/File/Temp.pm line 14.
    BEGIN failed--compilation aborted at /usr/lib/perl5/5.8.8/File/Temp.pm line 14.
    Compilation failed in require at blast.cgi line 5.
    BEGIN failed--compilation aborted at blast.cgi line 5.

    Kindly see to it. Is this due any updation in the perl version carried out by the server admin?
  6. #4
  7. No Profile Picture
    Contributing User
    Devshed Intermediate (1500 - 1999 posts)

    Join Date
    Apr 2009
    Posts
    1,875
    Rep Power
    1225
    I tried reinstalling the File:Temp.pm and XSLoader.pm on the server's perl lib directory. (Note: These two weren't there at that time).
    Those modules were added to the perl core in v5.6, which was 13 years ago, and the error message states the line numbers in those modules that were being executed at the time of the error. You should take a look at those lines to see what it was trying to require.


    Fcntl object version 1.05 does not match $Fcntl::VERSION 1.11 at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 253.
    That error indicates that the Fcntl module (and probably perl itself) was "upgraded" incorrectly.

IMN logo majestic logo threadwatch logo seochat tools logo