アプリ版:「スタンプのみでお礼する」機能のリリースについて

今、ソケットを用いたメール送信プログラムを作成していて、以下のページを
参考にプログラムを組んでいるのですが、次の意味が分かりません。
どなたかご存知の方がいらっしゃいましたら教えて頂きたいのですが。
# --------------------
# 改行コード変換
# --------------------
sub decode{

my $inf = $_[0];
$$inf =~ s/\x0D\x0A|\x0D|\x0A/\n/g; #←特にこの行が

}

『Knave Web講座』"http://www.site-cooler.com/kwl/perl/smtp.htm#perl"より

A 回答 (4件)

コンピュータで使われている改行コードは、



\x0D \x0A (windows系)
\x0A (Linux系)
\x0D (Macintosh系)

の3種類があります。
これを一括して論理的な改行記号"\n"に置き換える部分が
件の行です。

その行の元になっている解説はこちらです↓
私の説明より分かりやすく書かれています。

参考URL:http://www.din.or.jp/~ohzaki/perl.htm#CRLF_Unify
    • good
    • 0
この回答へのお礼

素早い回答ありがとうございました。
解決しました。

お礼日時:2006/02/14 19:05

それがし、"perl" ど素人のため、良くしりませぬー。

ごめんね。
16進の改行表現、今知りました。馴染のある オクタル表現で、すこし遊んでみました。(私のマシン "Linux" のため、元は "LF" だす)

#!/usr/bin/perl

while(<>){
$_ =~ s/\012/\015/g; #LF(ラインフィード) を C/R に変更
if($_ =~s/\015\012//g){ #Windows だったら
print $_, " C/R + LF\n";
}
elsif($_ =~ s/\012//g){ #Linux/UNIX だったら
print $_, " LF だけ\n";
}
elsif($_ =~ s/\015//g){ #Mac だったら
print $_, " C/R だけ\n";
}
}
つまらなすぎて、ごめんね!?
    • good
    • 0
この回答へのお礼

素早い回答ありがとうございました。

お礼日時:2006/02/14 19:06

改行コード変換はたぶんperl内部における文字コード変換なんかの過程でしょう。


後は蛇足と言うか参考までに。

>今、ソケットを用いたメール送信プログラムを作成していて、
ソケットを使用しなければいけませんか?
メール送受信なら用意されたperlモジュールをオススメします。
http://homepage3.nifty.com/hippo2000/perltips/pe …

ソケット生成して、順番待ちして・・などとやるよりは簡単ですからね。。

kentwebさんの方が詳しいですが、ソケットならこっちも参考になりますよ。
http://www.7key.jp/program/perl/study2.html
    • good
    • 0
この回答へのお礼

素早い回答ありがとうございました。
参考になりました。

お礼日時:2006/02/14 19:06

 CRLF または、CR または LF が対象文字列にあったら、 \n に変換しているでは。


 
 下記参考です。
 http://seclan.dll.jp/cccrlf.htm

 

参考URL:http://seclan.dll.jp/cccrlf.htm
    • good
    • 0
この回答へのお礼

素早い回答ありがとうございました。

お礼日時:2006/02/14 19:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!