在列表上下文中,返回一个列表值,该值包含 LIST 中的元素,顺序相反。在标量上下文中,连接 LIST 中的元素,并返回一个字符串值,其中所有字符的顺序相反。
print join(", ", reverse "world", "Hello"); # Hello, world
print scalar reverse "dlrow ,", "olleH"; # Hello, world
$_ = "dlrow ,olleH";
print reverse; # No output, list context
print scalar reverse; # Hello, world
请注意,将数组反转到自身(如 @a = reverse @a
)将在可能的情况下保留不存在的元素;即,对于非魔法数组或对于具有 EXISTS
和 DELETE
方法的绑定数组。
此运算符也适用于反转哈希,尽管有一些注意事项。如果在原始哈希中重复了某个值,则这些值中只有一个可以作为反转后的哈希中的键表示。此外,这必须解开一个哈希并构建一个全新的哈希,这可能在大型哈希(例如来自 DBM 文件的哈希)上需要一些时间。
my %by_name = reverse %by_address; # Invert the hash