Supposons que j'ai un script perl, à savoir myTest.pl. Puis-je l'exécuter par quelque chose comme La raison pour laquelle je veux faire est que j'ai un script de Perl crypté et je peux la déchiffrer dans mon programme C et je veux l'exécuter dans mon programme C. Je ne veux pas écrire le script déchiffré à HardDisk en raison de préoccupations de sécurité. J'ai donc besoin d'exécuter ce script Perl à la volée, tout en mémoire. p>
Cette question n'a rien à voir avec la commande chat myTest.pl | perl -e code>? p>
chat code>, je veux simplement savoir comment nourrir le script Perl à STDIN et laisser Perl Interprète à l'exécuter. P>
5 Réponses :
#!/usr/bin/env perl
Si vous souhaitez exécuter STDIN et que vous souhaitez transmettre un argument, utilisez Perl - - Inputparam
L'utilisation inutile du lien Award Cat est cassée, voici l'archive: web.archive.org/web/20091121155349/http://partmaps.org/era/u Nix / ...
Modifié avec une version d'archive non-web
perl mytest.pl should be the correct way. Why are you doing the unnecessary?
cat mytest.pl | perl â¦is all you need. The -e switch expects the script as a command line argument.
Voir «Inutile Cat Award», référencé dans la réponse de Brian.
La question concerne la lecture de Stdin. Je suppose que l'utilisation du chat était un exemple et que le Perl a été généré de manière plus intéressante.
Dorward, tu es correct. J'ai mis à jour ma question de clarté.
Pour que vous puissiez lire théoriquement un fichier crypté, le déchiffrer et Exécutez-le, sans enregistrer le fichier nulle part. p> Voici un exemple de programme: p> Pour tester ce programme, je suis d'abord couru ceci: P> perl code> lira le programme de
stdin code> si vous ne le donnez aucun argument.
perl -MCrypt::CBC -e'
my $a = qq[print "Hello World\n"];
my $key = pack("H16", "0123456789ABCDEF");
my $cipher = Crypt::CBC->new(-key=>$key,-cipher=>"Blowfish");
my $encrypted = $cipher->encrypt($a);
print $encrypted;
' > perl_program.encrypted
Parfois, il faut exécuter un script Perl et transmettre un argument. Le STDIN CONSTRUCTION PERL INPUT_FILE.TXT
Pas besoin de faire ça. Utilisez Perl - - Inputparam
"Cat myTest.pl | Perl" devrait fonctionner, mais pourquoi?
Qu'essayez-vous de faire et pourquoi pensez-vous que c'est la solution?
J'ai un exemple dans la maîtrise de Perl qui montre à quel point il est facile de contourner ce que vous essayez de faire. Vous pensez que vous avez une sécurité, mais lorsque vous envoyez les données en dehors de votre programme, vous en perdez le contrôle.