1 votes

Je veux accéder à une variable privée d'un sous-programme en dehors de celui-ci.

J'essaie d'accéder à une variable privée d'une sous-routine en dehors de la sous-routine. Comment faire ?

J'ai essayé le code que j'ai posté avec la question mais il imprime les valeurs de la variable globale "nom" et la condition est que le nom de la variable globale et de la variable privée doit être le même.

 print("Please Enter Your First Name:\n");
 # declaration of global variable 
 $name = <>;
 YourFirstName_StudentID($name);
 sub YourFirstName_StudentID {
     print("My name is $name\n");
     print("Enter Your Student ID\n");
     my $name = <>;
 }
 #printing outside subroutine 
 print("Student Id is: $name");

La sortie est actuellement : Veuillez saisir votre prénom : Mon nom est xyz

Entrez votre numéro d'étudiant L'identifiant de l'étudiant est : xyz

Mais je veux que ce soit comme ça Veuillez saisir votre prénom : Mon nom est xyz

Entrez votre numéro d'étudiant L'identifiant de l'étudiant est : 1234567

5voto

Håkon Hægland Points 5103

Voici un exemple, nous n'avons pas besoin d'utiliser des variables globales ici. Il est préférable d'utiliser variables lexicales :

use strict;
use warnings;

{   # <--- Make a scope so lexical variables do not leak out into
    #       subs declared later in the file..
    print("Please Enter Your First Name:\n");
    chomp (my $name = <>);
    my $id = YourFirstName_StudentID($name);
    print("Student Id is: $id\n");
}

sub YourFirstName_StudentID {
    #print("My name is $name\n");
    print("Enter Your Student ID\n");
    chomp( my $id = <>);
    return $id;  # <--- return local variable to caller
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X