• ベストアンサー

パールで「$:」は何を意味するのですか??

パールプログラムの先頭に次の行がありました。 $: = " "; これはいったい何をやっているのでしょうか。 $:という変数へ1文字分の空白文字を代入しているというのは分かるのですが・・・ ちなみにパール起動直後にこの変数の内容を表示させてみたら_(下線)でした・・・。 パールではこの$:という変数は何に使用されているのですか。

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

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

アンダースコア(下線)じゃなくてマイナス記号(ハイフン)ではないですか? $: The current set of characters after which a string may be broken to fill continuation fields (starting with ^) in a format. Default is " \n-", to break on whitespace or hyphens. (Mnemonic: a "colon" in poetry is a part of a line.) ということなので、問題のスクリプト(プログラム)で format と writeを使っていませんか?

zyousuke
質問者

お礼

sakusaker7さん、ご返信ありがとうございます。 ご想像のとおりアンダースコアじゃなくてマイナス記号でしたw 正式には空白文字、改行文字、マイナス記号なのですね。 理解するのに時間がかかりましたが、フォーマットの解説サイトを読みつつ、いろいろ実行したところ $:の役割が分かりました。 これはフォーマット変数の一種で この変数に代入した文字列のうち、どれか1文字を出力後、改行しごろなら改行するというものだと思います。 たとえば $: = "b"; $str = "abaabaaabaaaabaaaaabaaaaaabaaaaaaa"; write; format = ^<<<<<<<<<<~~ $str . このコードを実行すると abaabaaab aaaabaaaaab aaaaaab aaaaaaa と出力します。 bを出力しても、改行しごろでない場合は改行しないというのがミソですね。

関連するQ&A