2

文字列変数を祝福しようとしています - 以下のコードに示されています。Bless は、ハッシュまたは配列を使用する場合にのみ機能するようです。ストリングスを祝福することはできますか? いいえの場合、何を祝福できますか? 私はしばらくデバッグしてきましたが、どんな助けでも大歓迎です。:-) コードに誤りがある場合は、その内容をお知らせください。

これはperlファイルです。コードは終了していませんが、「Page End」ステートメントに到達することはありません。だから長くするのはやめました。$FileInfo は、以前にファイルから読み取った配列定義ですが、構文のためにここで文字化けします。

これは、オブジェクト参照を構築するための呼び出しです

$page = new GeneratePages(0);

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

1 に答える 1

11

Bless は参照に対してのみ機能します。perldoc blessから:

この関数は、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
于 2011-03-31T08:58:03.130 に答える