我怎样才能在Perl中保佑一个字符串?

rub*_*buc 2 perl bless

我试图祝福一个字符串变量 - 在下面的代码中演示.当我使用哈希或数组时,Bless似乎只能工作.你被允许保佑弦乐吗?如果不是,你有什么可以祝福的?我已经调试了一段时间,任何帮助将不胜感激.:-)如果我在代码中出错,请告诉我它是什么.

这是一个perl文件.代码未完成,但它从未到达"页面结束"语句.所以我不再延长它.$ FileInfo是一个早先从文件中读取的数组,但是由于语法在这里乱码.

这是调用构建ojbect引用

$page = new GeneratePages(0);

package GeneratePages;  
sub new  
{  
    my $class = shift;  
    my $pageContents = $FileInfo[shift];  
    bless $pageContents, $class;  
    return $pageContents;  
}
Run Code Online (Sandbox Code Playgroud)

Eug*_*ash 11

祝福只适用于参考文献.从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
Run Code Online (Sandbox Code Playgroud)

  • @ysth,`bless`的文档不同意 - 它将引用的变量称为对象.此外,如果引用是对象,那么`\ $ {\ $ s}`将创建一个新对象,这是没有意义的.最后,类*不与引用相关联,而是与引用的变量相关联. (3认同)
  • 更准确地说,\ $ s是对象,$ s是对象内容. (2认同)