J'ai un code généré automatiquement qui écrit efficacement ce qui suit dans un tas d'endroits différents dans un code:Comment localiser les variables Perl dans un cadre de pile différent?
no warnings 'uninitialized';
local %ENV = %ENV;
local $/ = $/;
local @INC = @INC;
local %INC = %INC;
local $_ = $_;
local $| = $|;
local %SIG = %SIG;
use warnings 'uninitialized';
Lorsque le code de génération automatique, certains affirment que ce n'est pas strictement nécessaire que le code soit " belle ", mais je voudrais tirer cela dans un sous-programme. Cependant, cela localiserait ces variables dans ce sous-programme. Y at-il un moyen de localiser ces variables dans le cadre de la pile d'appel?
Mise à jour: Dans la même veine, il serait agréable d'être en mesure d'exécuter eval dans un cadre de pile supérieure. Je pense que Python a déjà ça. Ce serait bien si Perl aussi.
Etes-vous sûr que vous avez vu cela en Python? Le 'uplevel' de Tcl vient à l'esprit. Mais la réponse d'hexten est bien meilleure quand même. – cfi