6

http://www.hyllander.org/node/23$*から("dollar asterisk" または "dollar star")を使用するコードをいくつか持っていますが、perl の私のバージョンでは次のように報告されています。

$* is no longer supported at migrate.pl line 284.

あなたは何をすることの副作用があったか知っていますか

$*=1

splitそれはトークナイザーや正規表現のような関数に何らかの影響を与えましたか?

4

1 に答える 1

16

の出力の一部を次に示しますperldoc perlvar

$* 文字列内の複数行のマッチングを行うにはゼロ以外の整数値に設定し、0 (または未定義) に設定すると、パターン マッチを最適化する目的で、文字列に 1 行が含まれていると想定できることを Perl に伝えます。$* が 0 または未定義の場合、複数の改行を含む文字列でパターン マッチを行うと、紛らわしい結果が生じる可能性があります。デフォルトは未定義です。(記憶法: * は複数のものに一致します。) この変数は、"^" と "$" のみの解釈に影響します。「$* == 0」の場合でも、リテラル改行を検索できます。

$* の使用は最新の Perl では推奨されておらず、パターン マッチングの "/s" および "/m" 修飾子に取って代わられています。

$* に数値以外の値を代入すると、警告がトリガーされます (そして、"$* == 0" の場合に $* が動作します)。一方、$* に数値を代入すると、値に暗黙の "int" が適用されます。

于 2009-11-23T09:33:49.377 に答える