Bonjour,

J'ai un problème avec un script Perl, pourtant je n'ai fais que copier / coller a partir d'un cours de Perl
voici le programme en question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
  1 #!/usr/bin/perl -w
  2 use strict;
  3 
  4 
  5 
  6 sub Crible
  7 {
  8         my $myprem = 18;
  9         my ($n)= @_;
 10         my @mypremiers=();
 11         my @nombres = (2..$n);
 12         while ( @nombres )
 13         {
 14                 $myprem = shift @nombres;
 15                 push @mypremiers, $myprem;
 16                 @nombres = grep {($_ % myprem) != 0} @nombres;
 17         }
 18         return @mypremiers;
 19 }
 20 
 21 my $p = 100;
 22 
 23 my @z = Crible($p);
 24 foreach my $i (@z)
 25 {
 26 print ("$i\n");
 27 }
et j'obtiens le message d'erreur suivant:

Bareword "myprem" not allowed while "strict subs" in use at ./test.pl line 16.
Execution of ./test.pl aborted due to compilation errors.

si j'ai bien compris, il croit que la variable myprem est "nue", pourtant je l'ai déclaré en scalaire ($)

Merci pour votre aide



// désolé j'ai pas vu qu'il manquait un $ a la ligne 16