>改行コードが変な風にいじられていました
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■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 橋下徹氏 高市首相“台湾有事”発言に「政治家の失言で一部の人でも仕事がキャンセルに…我々は認めていいのかな」疑問呈す [muffin★]
- 中国外相、台湾問題巡りフランスに支持要請−高市首相発言「挑発的」 [♪♪♪★]
- 今後50年間、毎年100万人ずつ人口が減る…「少子化対策」の失敗で日本が迎える「死ぬまで搾取」というヤバい未来 ★5 [ぐれ★]
- 《「最近いつした?」が口癖》国分太一 女性への“わいせつ事案”報道…目撃されていた「下ネタ好き」と「悪辣なイジり癖」 [Ailuropoda melanoleuca★]
- 「怒りに震えて涙が出た」 同性婚認めず「合憲」判断に原告が反発 「差別的な判決だ」 [ぐれ★]
- 70歳、認知症のブルース・ウィリス、もう娘を認識できない 前頭側頭型認知症に妻「一瞬で人生を根こそぎ奪われる」 [首都圏の虎★]
- 【動画】上海バンダイナムコフェス、ワンピース歌ってる途中に中国政府「日本人の公演全面禁止」発令された瞬間強制終了 怖すぎ★3 [579392623]
- 【悲報】高市早苗さん、就任たった1ヶ月で国が滅茶苦茶になる [115996789]
- 【速報】シドSIDさん、中国ツアー中止に追い込まれる!甚大な高市早苗被害がとどまることはない模様…どうすんのこれ?! [339712612]
- 存在自体が存立危機事態の総理大臣いるでしょ [931948549]
- 37歳っておっさんと呼ぶには若すぎるけど若者かと言われると微妙な年齢だよな
- 深夜雑談★30
