Mon attente: Je dois utiliser la commande suivante pour envoyer la valeur du premier argument à tous les fichiers appelant le fichier perl.pl.Programmation Perl dans Shell
./perl.pl 1
L'un est lu en utilisant le fichier suivant: (perl.pl)
#!/usr/bin/perl
package Black;
use strict;
use warnings;
#subroutines
sub get_x();
#variables
our $XE = -1;
my ($param1, $param2, $param3) = @ARGV;
my $x = get_x();
sub get_x()
{
$XE = $param1;
return $XE;
}
exit;
Puis j'ai écrit un autre script qui exécute une base de code sur l'entrée perl.pl (0 ou 1) . Le fichier est ./per.pl et j'invoquer à partir de terminal Linux comme ceci: ./per.pl Voici le code que j'ai écrit pour lui:
#!/usr/bin/perl
require "perl.pl";
my $xd = Black::get_x();
if ($xd ==1){
print $xd;}
else {
print "5";
}
sortie;
Mais ce que je reçois quand j'écris ces commandes:
./perl.pl 1
j'ai essayé de l'imprimer et imprime 1 ... retiré l'impression comme à partir du code dans ce cas
./per.pl
Et maintenant je n'ai rien. Je voudrais que le 1 s'imprimé mais pas elle ne présente pas
Merci à l'avance
Vous n'avez rien? Black :: get_x() renvoie toujours undef quand il est invoqué par 'per.pl', donc le test échoue toujours, donc il imprime toujours 5. Peut-être que vous ne voyez pas la sortie parce que vous n'imprimez pas de retour à la ligne. essayez './per.pl; echo' à la coque. –