>改行コードが変な風にいじられていました
perlではどのOSでも改行をLF(\n, 0x0a)として扱っている
Windowsでは通常出力する際に自動的にLFをCRLFに変換している
0x0a (perlの\n)
0x0a 0x00 (utf16にエンコード)
0x0d 0x0a 0x00 (0x0a を 0x0d 0x0a に変換、正しくは 0x0d 0x00 0x0a 0x00 にしたい)
wprint関数のやり方が上手くいくのは
0x0a (perlの\n)
0x0d 0x0a (s/\n/\r\n/g で置換)
0x0d 0x00 0x0a 0x00 (utf16にエンコードし、自動変換も無効にしているのでこのまま出力される)
>「bbbbb」は出力されません
様々な事情で特殊変数 @_ の各要素やループ時に設定される一時変数 $_ は元の値の別名として扱われる
つまり同じ値を参照しているため、それらに代入や置換などを行うと元の値も変更されてしまう
元の値が変数ならそれが変更されるだけで問題はないが、定数の場合変更できないのでそこで死んでしまう
wprint関数では @_ でもループ内でも変数として受け取っていないため置換処理で引数の値を変更しようとしている
'a' x 5 は評価されたときに変数に入れられたように扱われるので問題はないが、直後の "\n" はまさしく定数なので変更できず死に、以降の処理が止まる
関数内で最初に my @args = @_; のように一度変数で受け取るのが意図しない変更を防ぐ意味でも良いだろう
Perlについての質問箱 63箱目
■ このスレッドは過去ログ倉庫に格納されています
673デフォルトの名無しさん
2017/03/20(月) 19:53:29.20ID:SJAmj6b4■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【台湾有事】トランプ氏 電話会談で高市総理に発言抑制を要求か 米メディア報道… ★3 [BFU★]
- 👨‍🦱👧Z世代、35%が週休3日希望 「無理せず・安定」に重き 民間調査 [パンナ・コッタ★]
- 【蒲郡ホテル】「中国人団体がキャンセル 損失2000万円」報道に見解公表→「想定内」「中国からの団体客に依存してない」 [nita★]
- 【文春】元TOKIO・国分太一(51)「女性スタッフ2名への“わいせつ事案”」日テレ事情聴取の全貌が分かった! ★7 [Ailuropoda melanoleuca★]
- 首相、台湾有事答弁で釈明に終始 政治とカネには「そんなことより」 ★2 [蚤の市★]
- 【テレビ】フジ『ザ・ノンフィクション』大晦日4時間特番のMCにお笑い芸人… 望まぬ“ネタ化”にファン不安視 [冬月記者★]
- 【速報】ヤフウヨ民大発狂中★2 [194819832]
- 高市首相「ウクライナと共にある」 [633746646]
- __半袖・半ズボン・日の丸、参政党信者? [827565401]
- フィフィ「高市早苗首相のスパイ防止法に反対する人たちってマジなんなの」 [256556981]
- 【悲報】トランプ、高市早苗にブチギレ💢「中国を挑発するなって何回言ったら分かるんだ!!💢」 [339035499]
- 【超絶悲報】木原官房長官「高市さんとトランプ大統領の会談内容について、お答えは差し控える」おやびん🥺 [519511584]
