Как я могу благословить строку в Perl? - PullRequest
2 голосов
/ 31 марта 2011

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

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

здесь - вызов для создания ссылки на объект

$page = new GeneratePages(0);

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

1 Ответ

11 голосов
/ 31 марта 2011

Благословляет, работает только на ссылки . От 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
...