Bareword not allowed while "strict subs" in use at
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:
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 :oops: