str からスラッシュを削除するには? perl で解決策が必要です。私は試した
($phot) = $photos =~ s/\///g;
しかし、うまくいきません
Perl では、s///
演算子は適用先の文字列を変更します。したがって、次のように書く必要があります。
my $phot = $photos;
$phot =~ s/\///g;
または、より簡潔に:
(my $phot = $photos) =~ s/\///g;
最近のバージョンの Perl には、/r
期待どおりの動作を得るために使用できるフラグがあります。
my $phot = ($photos =~ s/\///gr);
ただし、Perl のバージョンにそれがあるかどうかを確認する必要があります。(実行perl -v
して、使用している Perl のバージョンを確認できます。この機能は Perl v5.14.0 で導入されました。)
追加するために編集: amonがコメントで指摘し、Ωmegaが彼/彼女の回答で示唆しているように、演算子は;s///
以外の区切り文字を許可します。/
したがって、たとえば、次のいずれかが機能します。
(my $phot = $photos) =~ s{/}{}g;
(my $phot = $photos) =~ s#/##g;
(my $phot = $photos) =~ s'/''g; # note: prevents variable interpolation
(my $phot = $photos) =~ s-/--g;
これらの 1 つは、書くよりも明確かもしれませんs/\///g
。(これはあなた次第です。)
区切り文字を自由に選択できることは、すべての引用符のような演算子に当てはまります。たとえば、またはまたは"x"
と書くこともできます。詳細については、 man-pageの「Quote and Quote-like Operators」を参照してください。qq{x}
qq/x/
qq-x-
perlop
(my $phot = $photos) =~ s#/##g;
また
(my $phot = $photos) =~ s{/}{}g;