in reply to Replacing with comma

I need to reuse the code

First, you need to learn proper formatting. Use this code as a guide:

my $line = "1,2,3"; my $ft_count = 0; $ft_count++ while($line =~ m/[,]/g); if ($ft_count == 2) { my $n = 2; my $r = $n - 1; $line =~ s/((?:,.*?){}),/${1}|/; } say $line;

I need to reuse the code

1) Replace all occurrences of | in the code with a comma.

2) Replace all occurrences of a comma in the code with a |. However, the pipe has a special meaning in a regex, so if you literally want to match a pipe in a regex, then you have to escape it with a backslash. Or, you can put the pipe in a character class:

[|]

... which will nullify its special meaning. The character class notation is easier to figure out than the hieroglyphics "\|", so I suggest you do that.

3) The substitution operator, s///, uses the syntax:

s/regex/string/

That means if you want to match a pipe character in the regex part of the s///, you must escape it or use it in a character class.