0

I have value E.1.1.1 in a variable, I want E111 stored in different variable.

$var1 = "E.1.1.1";
$var1 =~ s/\.//g;

The above code changes the value in $var1 variable. I want to try as below.

$var2 = s/\.//g $var1;

Suggest how to do. I am new to Perl.

ikegami
  • 367,544
  • 15
  • 269
  • 518
Sriram P
  • 179
  • 1
  • 13

3 Answers3

2

Something like this should work:

(my $var2 = $var1) =~ s/\.//g;
Rob W.
  • 270
  • 6
  • 14
2
my $var2 = $var1;
$var2 =~ s/\.//g;

or

( my $var2 = $var1 ) =~ s/\.//g;

or

my $var2 = $var1 =~ s/\.//gr;    # 5.14+
ikegami
  • 367,544
  • 15
  • 269
  • 518
0

You already got universal answers using s///.

For this specific task, removing . from a string , you can also use the y (alias tr).

( my $var2 = $var1 ) =~ y/.//d;

or

my $var2 = $var1 =~ y/.//dr; #the /r needs 5.14+

More info: perlop - Quote-Like Operators

clt60
  • 62,119
  • 17
  • 107
  • 194