C: \ Perl \ bin \ perl.exe
use strict;
use warnings;
my $numArgs = $#ARGV + 1;
print "thanks, you gave me $numArgs command-line arguments.\n";
while (my $line = <DATA>) {
foreach my $argnum (0 .. $#ARGV) {
if ($line =~ /$ARGV[$argnum]/)
{
print $line;
}
}
}
__DATA__
A
B
Hello World :-)
Hello World !
quand je suis passé un arg, cela fonctionne bien. Tels que je lance test.pl A ou test.pl B ou ** test.pl Bonjour »et question boucle mixte foreach
quand je suis passé deux args, il travaille quelque temps que
réussie. Quand je exécuter test.pl AB ou test.pl A Bonjour ou ** test.pl B Bonjour »
a échoué: quand je lance test.pl Bonjour tout le monde *
lignes produites et en double de sortie:
D:\learning\perl>t.pl Hello World
thanks, you gave me 2 command-line arguments.
Hello World :-)
Hello World :-)
Hello World !
Hello World !
D:\learning\perl>
Comment résoudre ce problème? Merci d'avoir lu et répondu.
[mise à jour] Je ne souhaite pas imprimer les lignes en double.
Salut Kemp. oui, comme tu l'as dit. Mais je ne veux pas imprimer des lignes en double. Je vous remercie. –
Ajoutez ensuite 'last;' juste après l'instruction 'print'. –
Cela fonctionne beaucoup. Je vous remercie! –