Как я могу благословить строку в 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