読者です 読者をやめる 読者になる 読者になる

120310 perl

use strict;
use warnings;

$n = 98;
print  "$n wo 3 de watta amari wa ";

$amari = $n % 3;
if ($amari == 0) {
    print "zero.";
} else {
    if ($amari == 1) {
	print "one.";
    } else {
	print "two.";
    }
}
print " isn't it?\n";

実行するとエラーがたくさん出た。

c:/dropbox/code $ perl mod3nest.pl 
Global symbol "$n" requires explicit package name at mod3nest.pl line 4.
Global symbol "$n" requires explicit package name at mod3nest.pl line 5.
Global symbol "$amari" requires explicit package name at mod3nest.pl line 6.
Global symbol "$n" requires explicit package name at mod3nest.pl line 6.
Global symbol "$amari" requires explicit package name at mod3nest.pl line 7.
Global symbol "$amari" requires explicit package name at mod3nest.pl line 10.
Execution of mod3nest.pl aborted due to compilation errors.

変数の前に my を付けるとエラーは出なくなった。

use strict;
use warnings;

my $n = 98;
print  "$n wo 3 de watta amari wa ";
my $amari = $n % 3;
if ($amari == 0) {
    print "zero.";
} else {
    if ($amari == 1) {
	print "one.";
    } else {
	print "two.";
    }
}
print " isn't it?\n";

あれ、なんでシンタックスハイライトが効かないのだろう。と思ったら CSS で文字色に対して !important 指定をしていたからだった。外したら無事にハイライトされるようになった。