perl“引用”逻辑错误?

来源:百度知道 编辑:UC知道 时间:2024/05/14 04:38:17
在perl中讲引用时,引用数组中的一个元素时, 比如说第二个元素,$array[1]和@array[1]都可以,但后者易引起逻辑错误。不知道这个“逻辑错误”是指的什么?请高手解释,谢谢!

@这个标号,暗示perl你引用的是一个list类型,向量
$这个标号,暗示Perl你引用的是一个scalar类型,标量

这个要看你具体的运算上下文。

某些操作要求操作向量,则用@引用,某些需要标量,则用$引用。
当然,你要保证array本身是向量,且内部存储的数据需要和引用的方式一致。
比如你存的是数字,那么就不要用@引用,你存的是另外一个数组,则需要用@引用。

什么场合用什么符号!不一定要去理解什么逻辑错误
如果访问数组元素,那么就用"$"符号。当表示一个数组的整体 则需要用"@"

还要看是scalar context还是list context
scalar context例子:

$fred = something;
$fred[3] = something;
123 + something
something + 654
if (something) { ... }
while (something) { ... }
$fred[something] = something;

list context例子:
@fred = something;
($fred, $barney) = something;
($fred) = something;
push @fred, something;
foreach $fred (something) { ... }
sort something
reverse something
print something