ルモーリン
ホーム 更新 Perl Sample ランドナー サービス 雑談 コースガイド 鉄ゲタ 自転車 Linux リンク 連絡先

ソースの改行はCRLFでも良い

2019-02-21

きっかけ

このような記事を見かけたので。
「ここで気を付けなくてはならないのが行末で、Windows のエディタで作成したソースを Linux で実行しようとするとエラーになることがある。これは行末が CR LF になっているためであり、インタプリタが CR までを含むとみなされてエラーになる。」
Perl 初心者やたまにしか Perl を使わない人向けのツボ

コード

コード自体は普通に動けば良いハズ。改行コードがCRLFという所がポイントです。
#!/usr/bin/env perl -w

use utf8;
use strict;
use warnings;

use Encode::Locale;

use feature "say";

binmode STDIN, ":encoding(console_in)";
binmode STDOUT, ":encoding(console_out)";

$| = 1;

say "たこルカは俺の嫁";

実行結果

WindowsとLinuxで同じ動作になりました。
たこルカは俺の嫁
肝心なのはソースの改行コードなのでLinuxでhexdumpしたものを掲載しますね。
0000000 2123 752f 7273 622f 6e69 652f 766e 7020
0000010 7265 206c 772d 0a0d 0a0d 7375 2065 7475
0000020 3866 0d3b 750a 6573 7320 7274 6369 3b74
0000030 0a0d 7375 2065 6177 6e72 6e69 7367 0d3b
0000040 0d0a 750a 6573 4520 636e 646f 3a65 4c3a
0000050 636f 6c61 3b65 0a0d 0a0d 7375 2065 6566
0000060 7461 7275 2065 7322 7961 3b22 0a0d 0a0d
0000070 6962 6d6e 646f 2065 5453 4944 2c4e 2220
0000080 653a 636e 646f 6e69 2867 6f63 736e 6c6f
0000090 5f65 6e69 2229 0d3b 620a 6e69 6f6d 6564
00000a0 5320 4454 554f 2c54 2220 653a 636e 646f
00000b0 6e69 2867 6f63 736e 6c6f 5f65 756f 2974
00000c0 3b22 0a0d 0a0d 7c24 3d20 3120 0d3b 0d0a
00000d0 730a 7961 2220 81e3 e39f 9381 83e3 e3ab
00000e0 ab82 81e3 e4af babf 81e3 e5ae 81ab 3b22
00000f0 0a0d 0a0d
00000f4