Question

J'essaie de bénir une variable de chaîne - démontrée dans le code ci-dessous. Bénis ne semble fonctionner que lorsque j'utilise un hachage ou un tableau. Êtes-vous autorisé à bénir les cordes? Si non, que pouvez-vous bénir? Je débogue depuis un certain temps, toute aide serait grandement appréciée. :-) Si je fais une erreur dans mon code, faites-moi savoir ce que c'est.

Il s'agit d'un fichier Perl. Le code n'est pas terminé, mais il n'atteint jamais l'instruction "Page End". J'ai donc cessé de l'allonger. $ FileInfo est un tableau définir la lecture plus tôt à partir d'un fichier, mais en raison de la syntaxe, se fait brouiller ici.

Voici l'appel pour construire une référence OJBect

$page = new GeneratePages(0);

package GeneratePages;  
sub new  
{  
    my $class = shift;  
    my $pageContents = $FileInfo[shift];  
    bless $pageContents, $class;  
    return $pageContents;  
}
Était-ce utile?

La solution

Bénise uniquement références. De perldoc bénisse:

Cette fonction indique la chose référencée par REF qu'il s'agit maintenant d'un objet dans le package de nom de classe.

Donc, si vous souhaitez utiliser une chaîne comme objet, vous devez y transmettre une référence à bless:

my $s = "foo"; # $s is a scalar variable
my $o = bless \$s, $class; # $s is now an object in the $class package
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top