Perlの文字列操作
文字列の連結
・文字列.文字列
・変数 .= 文字列;
エスケープシーケンス
\t # タブ文字(\x09)
\n # 改行(\x0a)
\r # リターン(\x0d)
\f # フォームフィード(\x0c)
\b # バックスペース(\x08)
\a # アラーム(\x07)
\e # エスケープ文字(\x1b)
\033 # 文字コード(8進数)
\x1b # 文字コード(16進数)
\c[ # コントロール文字
\l # 次の1文字を小文字にする
\u # 次の1文字を大文字にする
\L # \Eまでの文字列を小文字にする
\U # \Eまでの文字列を大文字にする
\E # \Lや\Uを終了させます
\" など # ダブルクォーテーション(")自身を表わす
出力
・print ""; エスケープシーケンスが有効、変数を展開する
・print ''; エスケープシーケンスが無効、変数は展開しない
・printf("");
・printf("%d",変数);
・ヒアドキュメント
print << 'AAA'
AAA
文字列の長さを求める
length("文字列");
文字列の比較
・eq 一致
・ne 不一致
文字化け対応
・\表
・use encoding 'sjis';
文字列の置換
変数 =~ tr/旧文字列/新文字列/(オプション);
オプション
・c 旧文字列に含まれない文字を新文字列に置換する
・d 旧文字列に含まれない文字をすべて削除する
・s 置換の結果、同じ文字が続いた場合は1文字にまとめる
文字列の置換(パターンマッチ)
$text =~ s/変換前/変換後/g;
末尾の改行文字を削除
chomp($text);
バイナリ値への変換
pack("C",文字列);
文字コード変換
use Jcode;
&Jcode::convert(\$text,'sjis','utf8'); #UTF-8からシフトJISへ変換
&jcode::convert(\$text2,'euc','sjis'); #シフトJISからEUCへ変換
&Jcode::convert(\$array[$_],'sjis','utf8'); #配列の要素を一括置換
&Jcode::convert( \$text, 'cp932', 'utf8' ); //シフトJISに変換するとき「~」が化けないようにする