Wow thank you.
I am used to vb and c#, not PERL. It is so different to me.
I changed it to
my ($email, $secondary) = @_;
tie @array, 'Tie::File', 'registration.dat';
s/0;nodata/1;$secondary/gi if /$email/
And it works now. What I don't get is why s/0;nodata/1;$secondary/gi if /$email/
works. There is no semicolon at the end and it is not like any function I have seen. I am used to something = something type notation. How does it even know what to look at and compare?