17

通常、パッケージは単に次のように始まります

package Cat;
... #content
!0;

perl 5.14 から「ブロック」構文もあることがわかりました。

package Cat {
    ... #content
}

それはおそらく同じです。念のために言っておきますが、違いはありますか?

そして1;、パッケージファイルの末尾について。ブロックの戻り値は、最後に評価された式の値と見なされます。1;では、閉店前に入れても}いいですか?幸せにするためrequireに、次の違いはありますか?

package Cat {
    ... #content
    1; 
}

package Cat {
    ... #content 
}
1;
4

5 に答える 5

1

違いはありますが、保守が難しいプログラミングを行っている場合のみです。my特に、パッケージ間で変数を使用している場合。Perl の規則では、ファイルごとに 1 つのパッケージのみを持ち、パッケージ全体を 1 つのファイルに収めます。

于 2013-07-05T14:52:54.287 に答える
1

他の答えが与えていないもう1つの違いがあります.2つある理由を説明するのに役立つかもしれません.

package Foo;
sub bar { ... }

Perl 5 では常にそれを行う方法package BLOCKでした。

package Foo {
  sub bar { ... }
}

perl 5.14 でのみ追加されました。

主な違いは、後者の形式の方がきれいですが、5.14 以降でのみ機能することです。以前のフォームは古いバージョンに戻ります。すっきりとしたフォルムは、主に見た目をすっきりさせるために追加されました。心配する価値のある意味上の違いはありません。

于 2013-07-15T01:37:49.807 に答える