6

@.perlの変数は何ですか?

これは特別な書き込み可能なグローバルのように見え、(驚くべきことに) 二重引用符で囲まれた文字列を補間しません。

use strict;
use warnings;

                 # Under 5.8, 5.10, 5.12, 5.14, and 5.16,
                 # the following lines produce:

@. = (3, 2, 1);  # no error
print "@.\n";    # "@."
print @., "\n";  # "321"

eval 'my @.; 1'  # Can't use global @. in "my" at (eval 1)
  or die $@;     #  line 1, near "my @."

以前に遭遇したことを思い出すことができず、perlvarnorで見たこともありませんperldata

4

2 に答える 2

6

perldoc perlvarは次のように述べています。

Perl の変数名は、一連の数字、単一の句読点、または制御文字の場合もあります。これらの名前はすべて、Perl による特別な使用のために予約されています。

数字、制御文字、または句読点文字で始まる Perl 識別子は、パッケージ宣言の影響から除外され、常に強制的に に含まれpackage mainます。strict 'vars'また、エラーも免除されます。

予約名を使用しています。どの機能にも依存できると期待すべきではありません。

于 2012-06-22T19:01:40.300 に答える
4

$.最新のファイルハンドルの現在の行番号 (またはレコード番号) です。

@.特別な意味や用途はありません


"@."補間しませんが、補間"@{.}"します。

@.将来の使用のために予約されており、使用しないでください

于 2012-06-22T18:52:21.647 に答える