in reply to substitution in a string

Two problems with the substitution you tried:

$temp = s|_|.|;

First, you need a tilde: $temp =~ s///

Second, you need the /g operator so that more than just the first "_" is replaced.

 $temp =~ s|_|.|g;
sub sk{ return unless $in = shift; $in =~ s!(.)$!!; print $1; sk($in)} sk("gro.alubaf@yehaf");