arrays - Perl的结构和分配

标签 arrays perl scalar

在perldata中,我找到了以下示例和说明。

@foo = ('cc', '-E', $bar);

assigns the entire list value to array @foo, but

$foo = ('cc', '-E', $bar);

assigns the value of variable $bar to the scalar variable $foo. 

这真的让我感到困惑,所以$foo等于$bar吗?如何理解@foo$foo之间的区别

最佳答案

perldata中的示例:

@foo = ('cc', '-E', $bar);
$foo = ('cc', '-E', $bar);

由于@foo创建列表上下文,因此将括号中的所有值分配给@foo。另一方面,$foo是一个标量,因此仅分配给列表中的最后一个元素,因为它在标量上下文中。

等于说:
'cc', '-E';
$foo = $bar;

在Perl中,标量(例如$foo)只能容纳一个值,因此列表的其余部分将被简单地丢弃。像@foo这样的数组将抽取列表中包含的所有值。

在Perl中,允许在不同类型的变量上使用相同的名称。 @foo$foo将被视为两个不同的变量。

关于arrays - Perl的结构和分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8599335/

相关文章:

java - 将字段解析为对象或数组时出错

perl - perl 有交互式 shell 吗?

perl - 检查 Perl 的 getopt 中的多个互斥选项

list - 为什么我在标量上看到下标的奇怪行为?

arrays - 如何为可变大小的数组创建固定的结构头

ruby - 如何遍历 Ruby 中的范围数组?

C- 指针、数组和结构之间的交互

python - 突出显示 GNOME 窗口列表中的一个窗口

java - 使用 Colt 库的简单矩阵运算(2D 和 3D)

Perl:这段代码怎么可能有效?