dポイントプレゼントキャンペーン実施中!

たびたびお世話になっております。

PERL version 5.14.2 をWindows 7 のコマンドプロンプトから起動して使っています。

use strict;
と一行目に書くと 宣言されていない変数があれば拒絶されるとのことで


#!/usr/bin/perl
use strict;
use warnings;

$a = 10;

print "$a\n";

というスクリプトを書きました。が、すんなり動いてしまいます。

use strict;
は どうすればうまく効くのでしょうか。

ご指導お願いします。

A 回答 (1件)

$aと$bは定義済みの変数であるため、my宣言せずにuse strictしていてもエラーになりません。


perlのわかりづらいところでもあります。

http://perldoc.jp/docs/perl/5.14.1/perlvar.pod
---
$a
$b

sort() を使うときの特殊パッケージ変数です; "sort" in perlfunc を 参照してください。 この特殊性により、$a と $b は、たとえ strict 'vars' プラグマを 使っているときでも (use vars や our() を使って) 宣言する必要が ありません。 これを sort() 比較ブロックや関数で使えるようにしたい場合は、 my $a や my $b としてレキシカル化しないでください。
    • good
    • 0
この回答へのお礼

あ、そういうことでしたか。。

助かりました。

ありがとうございます。

お礼日時:2012/11/17 18:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!