は、その文字のリストに文字列を分割し、そしてmapはその完全な単語で各を置き換えるためにハッシュを使用しています''
パターンと同様
my %repl = (c => 'center', l => 'left', r => 'right');
$tmp = join ' ', map { $repl{$_} } split '', $tmp;
split正規表現せずに行うことができます。 map
の出力リストはスペースで結合されています。元の文字列が、まだ他の文字が含まれている場合は、最初の
$tmp = join ' ', map { $repl{$_} } grep { /c|l|r/ } split '', $tmp;
か、にISN何のためにmap
で空のリストを使用し、それらを除外することができますコメント
に更新
ハッシュで定義されていません。
$tmp = join ' ', map { $repl{$_} //() } split '', $tmp;
これは、c|l|r
以外のすべてを削除します。結果にそれらを保持するためには、それらもスペースで区切られた結果を保つために
$tmp = join ' ', map { $repl{$_} // $_ } split '', $tmp;
があります。それらを保つためにを一緒にそれをさらに調整する必要があります。
あなたが代わりに代替品のハッシュを使用することができます
あなたのコードの後にこれを追加: '$ TMP =〜S/\ sの*の$ //グラム;' – AbhiNickz
@AbhiNickz:行います。 – ssr1012