Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
use Readonly;
 
my $id = ">gi|161138348|gb|EU128674.1| Brucella abortus strain 2308 pathogenicity island PAIB1 sequence";
 
Readonly::Scalar my $GI		=> qx{gi\|(\d+)\|}xms;
Readonly::Scalar my $GB		=> qx{gb\|([.\w]+)\|}xms;
Readonly::Scalar my $DEFINITION	=> qx{(.+)\z}xms;
Readonly::Scalar my $ID		=> qx{($GI)($GB)($DEFINITION)}xms;
 
my ($gi, $gb, $definition) = $id =~ $ID;
Erreurs :
Unrecognized escape \d passed through at RX_Perl_Best_Practices.pl line 48.
Bareword found where operator expected at RX_Perl_Best_Practices.pl line 48, near "qx{gi\|(\d+)\|}xms"
Unrecognized escape \w passed through at RX_Perl_Best_Practices.pl line 49.
Bareword found where operator expected at RX_Perl_Best_Practices.pl line 49, near "qx{gb\|([.\w]+)\|}xms"
Unrecognized escape \z passed through at RX_Perl_Best_Practices.pl line 50.
Bareword found where operator expected at RX_Perl_Best_Practices.pl line 50, near "qx{(.+)\z}xms"
Bareword found where operator expected at RX_Perl_Best_Practices.pl line 51, near "qx{($GI)($GB)($DEFINITION)}xms"
syntax error at RX_Perl_Best_Practices.pl line 48, near "qx{gi\|(\d+)\|}xms"
syntax error at RX_Perl_Best_Practices.pl line 49, near "qx{gb\|([.\w]+)\|}xms"
syntax error at RX_Perl_Best_Practices.pl line 50, near "qx{(.+)\z}xms"
syntax error at RX_Perl_Best_Practices.pl line 51, near "qx{($GI)($GB)($DEFINITION)}xms"
Execution of RX_Perl_Best_Practices.pl aborted due to compilation errors.
J'utilise Perl 5.8.8 je peux donc utiliser Readonly::Scalar ou simplement Readonly.
Pourriez-vous m'aider à corriger ce code s'il vous plait?
Que pensez-vous de toujours utiliser /xms ... j'ai l'impression que cela complique les choses mais probablement est-ce parce que je n'ai pas encore l'habitude de les utiliser.

Merci.