なぜ次のことが起こるのかを誰かが説明するのはとても楽しいでしょうか?コードは次のとおりです。
#!/usr/bin/perl
use v5.14;
use warnings;
my @arr = (1, 2, 3);
sub func
{
return @arr;
}
push(&func(), 4);
say @arr;
実行しようとすると、出力はNot an ARRAY reference at ...です。
これは、を&func()評価するの@arrではなく、単純なリストを1, 2, 3評価し、の引数1として扱われるためだと思います。誰かがなぜこれが起こるのか説明できますか、ドキュメントでこれに関連するものは何も見つかりませんでした。ARRAYpushpush
前もって感謝します。