• ベストアンサー

perlで関数のプロトタイプでリファレンスの場合は?

perlで関数にプロトタイプを記述しようとしたのですが、リファレンスの場合はどうしたらよいのでしょうか? sub test(\$[ここに必ずリファレンス型]){ my($sca, $ref) = @_; } my $a = "A"; my @b = ("1", 2, "3"); test($a, \@b);

質問者が選んだベストアンサー

  • ベストアンサー
  • maura
  • ベストアンサー率46% (48/104)
回答No.1

関数の使用法が少し変わってしまいますが。。 sub test($\@){ my($sca, $ref) = @_; print $sca, @{$ref}[2]; } my $a = "A"; my @b = ("1", 2, "3"); test($a, @b);

tanaka22
質問者

補足

私の勘違いかもしれませんが、 リファレンス型は \$や\@や\%が正解ということでしょうか? プロトタイプに \$を付けると、受け取ったサブルーチン内の変数ではすべて頭に¥がついていました。 \$はてっきり、スカラー必須という意味でなく、スカラーのリファレンスという意味が正しいと理解し、データ型を特定するという意味は間違いやすいので¥が付けばリファレンス型と断言してもよいのでしょうか? 間違っていましたら、ご指摘ください。

関連するQ&A