2010-10-12 5 views

Répondre

2

Je suppose que vous parlez d'un tableau Perl, qui est connu comme une liste Tcl. A partir de Perl:

system 'myscript.exp', @ary; 

Ensuite, votre script Attendez-vous à avoir:

set list_of_arguments $argv 
1

Glenn, je me demande si Saranyya comprendra votre réponse. Je vais vous offrir un peu de contexte qui pourrait l'aider. Tout d'abord, Saranyya, sachez que vous pouvez choisir une variété de combinaisons différentes de Perl et Expect. Si un script Expect existant fait quelque chose que vous voulez améliorer, vous pourriez bien faire simplement de coder la fonctionnalité dans Expect, plutôt que Perl; Expect est un langage entièrement universel, et peut faire essentiellement tout ce que fait Perl. Inversement, si vous avez une application Perl qui a besoin de la fonctionnalité Expect, vous pouvez écrire presque tout ce dont vous avez besoin dans Perl, avec Expect.pm; il n'est pas nécessaire de construire un processus d'attente distinct. Enfin, il est également raisonnable de faire ce que vous semblez décrire, et ce que Glenn pense que vous recherchez: invocation d'un processus Expect autonome de Perl. Si vous le faites, et si, comme croquis Glenn, votre programme Perl COMPREND

system 'myscript.exp', @ary; 

alors votre Expect script accède aux paramètres qui lui sont passés par la $ :: argv valeur, qui est une liste. Je vais élaborer l'exemple légèrement: supposons que vous passez à travers le système une liste de noms d'hôtes; puis en Attendez-vous que vous pourriez utilement avoir

set list_of_hostnames $::argv 
foreach hostname $list_of_hostnames { 
    do_something_valuable $hostname 
} 

L'interface d'un processus à un autre communique valeurs, plutôt que des variables . Au moment où l'information atteint Expect, il "ne sait pas" qu'il s'agissait d'un tableau (par exemple) en Perl. Vous utilisez les mêmes techniques pour déréférencer $ :: argv, mais vous avez empaqueté des choses du côté de Perl.

+0

J'ai changé d'avis. Après réflexion, j'ai décidé que la réponse de Glenn correspond probablement aux besoins de Saranyya. Cependant, ce dernier est peut-être utile en tant que complément du premier. –

Questions connexes