Perl は $ の前の部分文字列を削除します。

Perl は $ の前の部分文字列を削除します。

$Perlは文字列の一部をPerl変数と見なすことを知っています。 Perl呼び出しで実行したいことは$asの前にある変数をオーバーライドすることですが、\$これは他のエラーを引き起こします。私の主張の順序が間違って何か問題があると思います。

私のコードは次のとおりです

perl -0pE "use strict; my $repo = "\$repo"; my $arch = "\$arch"; 
s|\rsync:\/\/[^\]]+|"${linesToWrite}"|"

私が受け取るコンパイラの警告は次のとおりです。 Can't use global $! in "my" at -e line 1, near "-p destination: $!"

Perlドキュメントでこれを処理する方法を詳しく説明する多くのドキュメントが見つかりましたが、bashの問題に対する解決策はあまりありませんでした。

私はこれを試しましたが、すべてが壊れました。

perl ""my $repo = "\$repo"; my $arch = "\$arch"" -0pE "use strict; 
s|\"rsync:\/\/[^\]+|"${linesToWrite}"|" 

Perlが文字列から "$"を削除するのを防ぎ、厳密な使用を有効にした状態でコンパイルするには、型を正しく指定するにはどうすればよいですか?

ベストアンサー1

$repo $archシェル変数と拡張のみが必要であると仮定すると、$linesToWrite二重引用符で囲み、残りの部分を一重引用符で囲みます。隣に引用符が付いた文字列は文字列を形成します(「a」'b'はabです)。 (代替コマンドでバックスラッシュを使用して何をしているのかわからないので、そのままにしていましたが、おそらく望んでいません。)

perl -0pE 'use strict; my $repo = "'"$repo"'"; my $arch = "'"$arch"'"; 
s|\rsync:\/\/[^\]]+|'"${linesToWrite}"'|'

おすすめ記事