Le tableau @ARGV
contient les arguments du script Perl, sans guillemets.
Cela dit, la question porte sur:
Je dois mettre la chaîne de ligne de commande entre guillemets. Je préfère faire la commande quelque chose comme ceci:
htmlencode some & HTML <> entities
Sans les guillemets. Y a-t-il un moyen de le faire en perl?
Eh bien, si la commande affichée est écrit à la ligne de commande shell, vous devez obéir à des conventions de coquille - ce qui signifie Echapper à la « &
» et « <>
» pour empêcher le shell de les interpréter. De même, dans un script Perl, cette séquence devrait être protégée de Perl. Peut-être vous écririez:
system "htmlencode", "some", "&", "HTML", "<>", "entities";
C'est, tout aurait être entre guillemets - mais que la notation éviteriez l'exécution de la coquille et la coquille ayant interpréter les commandes.
Alternativement encore, si vous mettez les arguments dans un tableau (avec des guillemets au moment où le tableau est chargé), alors vous pouvez passer ce tableau à system
et ne pas utiliser les guillemets:
my @args = ("htmlencode", "some", "&", "HTML", "<>", "entities");
system @args;
Mais je pense que la question est confuse.
le && < and > ne sera-t-il pas interprété par votre shell avant même qu'il ne soit perl? – dlamblin
Je pense que vous voulez dire $ ARGV [0]; $ ARGV est quelque chose de différent. – ysth
Mettre [Invalid] dans le titre de votre question ne fait que mettre à jour le flux RSS. Si vous pensez que votre question n'est pas valide, cliquez sur le lien de fermeture en regard des liens de modification et d'indicateur en bas à gauche de votre question. –