我用@和声明相同的变量名称$:
@ask=(1..9);
$ask="insanity";
print ("Array @ask\n");
print ("Scalar $ask\n");
Run Code Online (Sandbox Code Playgroud)
没有使用use strict我正在输出正确但当我使用use strict它时给我一个编译错误.
这两个变量是指两个不同的内存位置还是相同的变量?
Jon*_*ler 21
你有两个变量:
@ask
$ask
Run Code Online (Sandbox Code Playgroud)
如果你愿意,你也可以%ask(哈希).然后你会写:
print $ask, $ask[0], $ask{0};
Run Code Online (Sandbox Code Playgroud)
引用标量,数组和哈希.
一般来说,你应该避免这种处理,但变量都是截然不同的,Perl不会混淆.
唯一的原因use strict;是抱怨是因为你没有为变量添加前缀my:
#!/usr/bin/env perl
use strict;
use warnings;
my @ask = (1..9);
my $ask = "insanity";
my %ask = ( 0 => 'infinity', infinity => 0 );
print "Array @ask\n";
print "Scalar $ask\n";
print "Hash $ask{0}\n";
Run Code Online (Sandbox Code Playgroud)
小智 15
用use strict;你需要在使用前先声明变量.
例如:
use strict;
my @ask=(1..9);
my $ask="insanity";
print ("Array @ask\n");
print ("Scalar $ask\n");
Run Code Online (Sandbox Code Playgroud)