Perl根据上下文(即使用变量的情况)对同一变量进行不同的处理。让我们检查以下示例-
#!/usr/bin/perl @names = ('John Paul', 'Lisa', 'Kumar'); @copy = @names; $size = @names; print "Given names are : @copy\n"; print "Number of names are : $size\n";
输出结果
这将产生以下结果-
Given names are : John Paul Lisa Kumar Number of names are : 3
@names是一个数组,已在两个不同的上下文中使用过。首先,我们将其复制到另一个数组(即list)中,因此假定上下文是列表上下文,它返回了所有元素。接下来,我们使用相同的数组,并尝试将该数组存储在标量中,因此在这种情况下,假设上下文是标量上下文,它仅返回此数组中的元素数量。下表列出了各种上下文-
序号 | 上下文和描述 |
---|---|
1 | 对标量变量进行标量分配会在标量上下文中评估右侧。 |
2 | 对数组或哈希的列表分配评估列表上下文中的右侧。 |
3 | 布尔布尔 上下文只是在其中对表达式求值以查看其是真还是假的任何地方。 |
4 | 无效 此上下文不仅不在乎返回值是什么,而且甚至不希望返回值。 |
5 | 内插 此上下文仅在引号内或类似于引号的事物中发生。 |