如何编写能够识别上下文的函数?

如何编写能够识别上下文的函数?

perl的很多内置函数根据标量上下文或者列表上下文返回不同的值,我想知道用户自己编写的函数如何也具备这样的能力,例如希望实现如下功能的函数:

1、在标量环境中,返回字符串"abc"
2、在列表环境中,返回字符串数组("a", "b", "c")
代码如下:

[Copy to clipboard] [ - ]
CODE:
sub context
{
       ....
}

$scale = &context();  # $scale的值为"abc"
($a, $b, $c) = &context(); # $a == "a", $b == "b", $c == "c"

谢谢解惑!
wantarray,学习了,谢谢!