• ベストアンサー

無名サブルーチンの疑問

下記コードを実行しましたが$nameの文字が表示されません。 コードが間違っているのでしょうか? $string = sub ("さぶろう") { my($name) = @_; return("$nameです。\n"); }; print &$string;

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

  • ベストアンサー
  • x9e
  • ベストアンサー率10% (11/104)
回答No.3

回答に エラー発見  escape sequence & メタキャラクタ > 削除 要請 > ADMIN

gusutaf
質問者

お礼

解決しました。最後の行から引数を与えてサブルーチンの引数で受け取ればよかったようです。 $string = sub ($value) { my($name) = @_; return("$nameです。\n"); }; print &$string("さぶろう"); ありがとうございました。

gusutaf
質問者

補足

削除してみました。 $string=sub("さぶろう"){ my($name)=@_; return("$nameです。\n"); }; print&$string;

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • x9e
  • ベストアンサー率10% (11/104)
回答No.2

実行環境の言語使用に関する情報をください。。。 より おおくの プログラマー が 回答 してくれると思いますよ。。。 わたくしは  文字列  処理  の 観点から  しか  見れません。。。 これは、 あどばいす、 追加情報  希望  の  レスポンスです 。。

gusutaf
質問者

お礼

解決しました。最後の行から引数を与えてサブルーチンの引数で受け取ればよかったようです。 $string = sub ($value) { my($name) = @_; return("$nameです。\n"); }; print &$string("さぶろう"); ありがとうございました。

gusutaf
質問者

補足

Perlは v5.8.0 です。

すると、全ての回答が全文表示されます。
noname#208124
noname#208124
回答No.1

Perlにデフォルト引数ありません undefかどうか自分で処理分けしてください # みんなもっとuse diagnostics;使うべき

gusutaf
質問者

お礼

解決しました。最後の行から引数を与えてサブルーチンの引数で受け取ればよかったようです。 $string = sub ($value) { my($name) = @_; return("$nameです。\n"); }; print &$string("さぶろう"); ありがとうございました。

gusutaf
質問者

補足

確認したら$nameがundefになっていました。ここが原因みたいです。

すると、全ての回答が全文表示されます。

関連するQ&A