リモートサーバーに接続されている個人用のマシンにスクリプトを作成しています。私は、リモートサーバーにPerl 4.0またはそれ以下のバージョンがインストールされていると思うので、それを認識できません。 chomp
コマンドの代替手段はありますか?Perl 4を使用している場合、どのように文字列をchompするのですか?
答えて
それは正確な交換ではありませんが、あなたは試みることができる:切り捨てる
$var =~ s/\r?\n?$//
いずれかCRLF(DOS)、LF(UNIX)、CR(Macの?)。
通常のchomp演算子は、現在定義されているO/Sに対して現在定義されている$INPUT_RECORD_SEPARATOR
を削除します。
良いアイデアですが、$ varに複数の\ n区切りの行が含まれている場合、Perl 4が正規表現で "$"をどのように解釈するかによって、最後の行ではなく最初の\ nが削除される可能性があります。 –
chomping \ r \ nの代わりに、あなたが言及したように、$ /の値を取り除くだけです。 –
私はそれについて考えましたが、それが動作することを確認するために手作業でPerl 4のマンページのセットを持っていませんでした。いずれにしても、私の入力パーサーはPostelの法則(「あなたが生産するものに厳密で、あなたが受け入れるものは自由」)を踏襲するので、私のバージョンは入力テキストファイルがDOSかUnixフォーマットのどちらであるかにかかわらず動作します。 – Alnitak
私はchop()がpre-5 perlで使われたと信じています。もちろん、chomp()と同じくらい有用ではありません。あなたはランダムな入力を処理している場合、あなたはおそらく、正規表現を使用したほうが良いでしょうが、あなたは常に、UNIX形式のファイルの構文解析している場合:状態以下のコメントとして
while (<F>) {
chop();
do_stuff();
}
を、(チョップ)常に最後を削除します文字が改行文字である場合(または行末にvarがある場合)だけでなく、左辺値の文字にもなります。私はこれを知っていたので(「chomp()」というコメントとしては役に立たない)、実際にそれを入力するのを忘れてしまった。
明確にするには、chopとchompの違いは、現在の$ INPUT_RECORD_SEPARATORであるかどうかに関係なく、chop * always *が最後の文字を削除することです。 – user55400
そして、入力レコードセパレータは複数の文字になる可能性があります:) –
Brian、perl4の慣習はどうでしたか?私は本当に "perl5"を話すだけですが、私が調べなければならなかったperl4のコードは、彼らが解析しようとしていたファイルのフォーマットを理解していたため、人々が "chomp()"を使う方法で "chop()"を使いました。 chop()を使用しない、または保護ロジックで多くをラップするのが慣用的な場合は、例を挙げることができますか?それ以外の場合は、私のdownvotesにもかかわらず、私は "chop()の答えは、perl4でchomp()のnot-as-goodの選択肢だったと感じています"という非常に有効な答えは "chomp()の代わりにperl4? – jj33
チョップルートに行くのはお勧めできません。私は正規表現を使用します。他の人にとっては、よりマインタブルで透明です。記録変数を習慣的に変更すると、最終的に最終的にはパッケージが貧弱になり、奇妙なことが起こります。
- 1. 文字列に '/'が含まれている場合、どのように '///'を使用できますか?
- 2. Perlでのchomp()の使用
- 3. クライアントがモバイルブラウザを使用している場合、perlでどのように検出するのですか?
- 4. Perlを使用して文字列のHTMLを取り除くにはどうすればよいですか?
- 5. nullの場合、Request.QueryStringの文字列パラメータをどのようにチェックするか?
- 6. が文字列のためのprintfを使用する場合は、文字列
- 7. Scalaで文字列補間を使用して文字列を固定幅文字列としてフォーマットするにはどうすればよいですか?
- 8. ASP.NETでクエリ文字列を使用する場合のベストプラクティス?
- 9. 文字セットがASCIIの場合は、どのようにしてリテラル文字列ISO/ANSI CでUnicode文字を表現できますか?
- 10. configが文字列内にある場合、新しいChannelFactory <TChannel>(文字列)を使用しますか?
- 11. 特定の文字列に続くファイルで4つの数字を合計しようとしています
- 12. SELECTを使用する場合の小文字の列名
- 13. このPerl文字列はどのようにエンコードされていますか?
- 14. 4文字をPerlで32ビットIEEE-754 floatに変換するにはどうすればよいですか?
- 15. Silverlightのdataformのデータテンプレートとして文字列を使用する場合のイベントハンドラ
- 16. Bashの場合文字列が配列に含まれていない場合はどうなりますか?
- 17. 入力XMLと変換XSLが文字列の場合、XslCompiledTransformを使用するにはどうすればよいですか?変換結果を文字列として取得するにはどうすればよいですか?
- 18. Pythonを使用してCSV文字列のフィールドをマージするにはどうすればよいですか?
- 19. NSStringを使用してこの文字列を解析するにはどうすればよいですか?
- 20. CakePHPでrequestActionを使用している場合、どのようにコンテンツの文字列にレイアウトを追加できますか?
- 21. Perlはどのようにフード内の文字列を比較しますか?
- 22. Perl POD由来のmanページでUnicode文字を使用するにはどうすればよいですか?
- 23. HTMLコードの文字列がある場合、JQueryを使用して解析するにはどうすればよいですか?
- 24. 文字列にåäöが含まれている場合、どのようにアルファベット順に文字列を並べ替えることができますか?
- 25. 文字の違いがあるかどうかを調べるには、どのように文字列をperlにダンプできますか?
- 26. 文字列の先頭から4文字を文字列の末尾にコピーするにはどうすればよいですか?たとえば、
- 27. Symfony2でクエリ文字列を使用してURLをルーティングするにはどうすればよいですか?
- 28. String.format()を使用して文字列を左揃えにするにはどうすればよいですか?
- 29. ファイル名の末尾4文字をすべて大文字にするPerlスクリプト
- 30. javascriptまたはjqueryを使用して配列の各文字列に文字列を追加するにはどうすればよいですか?
Perl 4?真剣に? Perl 5は、1994年10月17日から、正確には15年近く使われていません。あなたはその間にアップグレードされていないマシンに接続していますか?もう一度チェックすることをお勧めします。 – Tanktalus
Perl 4しか付属していないマシンがあります。あなたはそれを気に入る必要はありませんが、それは本当です。 –