Как я могу благословить строку в Perl?

Я пытаюсь благословить строковую переменную - продемонстрировано в коде ниже. Благословение только работает, когда я использую хеш или массив. Вам разрешено благословлять струны? Если нет, что вы можете благословить? Я отлаживал некоторое время, любая помощь будет принята с благодарностью.:-) Если я сделал ошибку в своем коде, пожалуйста, дайте мне знать, что это такое.

Это файл Perl. Код не закончен, но он никогда не достигает оператора "Конец страницы". Поэтому я перестал его удлинять. $FileInfo - это массив, определенный ранее для чтения из файла, но из-за синтаксиса здесь искажается.

здесь призыв построить ссылку ojbect

$page = new GeneratePages(0);

package GeneratePages;  
sub new  
{  
    my $class = shift;  
    my $pageContents = $FileInfo[shift];  
    bless $pageContents, $class;  
    return $pageContents;  
}

1 ответ

Решение

Благослови работает только по ссылкам. От Perldoc благослови:

Эта функция сообщает объекту, на который ссылается REF, что теперь это объект в пакете CLASSNAME.

Поэтому, если вы хотите использовать строку в качестве объекта, вы должны передать ссылку на нее bless:

my $s = "foo"; # $s is a scalar variable
my $o = bless \$s, $class; # $s is now an object in the $class package
Другие вопросы по тегам