in reply to Removing Spaces From A File

OK, I'll first X-part of the XY-problem.. you continuously copying values around between variables and then overwriting them again :-)
$cname = $name = $_ ; # copies $_ into $name and $cname $name =~ s/\s//g; # removes the spaces from $name $name = $pwd = $_ ; # copies $_ into $name and $pwd $pwd =~ tr .... # transliterates $pwd

The right code for what I guess you want would be:

$name = $pwd = $_; # copy line into $name and $pwd $pwd =~ s/\s//g; # remove spaces from $pwd $pwd =~ tr .... # transliterate $pwd

Now the Y-part.. what are you really trying to do? It look like you're generating passwords or serial numbers from the user's name. If so, then you should really look into using a hashing algorithm. There are plenty of modules available to do this, such as Digest::MD5 or Digest::SHA1.

Update, since it's not trivial how to use MD5 to make a 6-digit number, here's an example:

use strict; use warnings; use Digest::MD5 qw(md5); my $name = "Fred Flintstone"; my $key = substr unpack("I", md5 $name), -6; print "Name: $name\n"; print "Key: $key\n";

Hope this helps

Replies are listed 'Best First'.
Re: Re: Removing Spaces From A File
by ellem (Hermit) on Mar 04, 2003 at 16:30 UTC
    OK I see. I wanted to have $name be spacesless, then generate the phone password. The transliteration is just a rough estimate of phone pads (ABC == 2, etc) that creates phone number passwords. So there isn't a huge need for security, thanks though.

    This solution will work.
    --
    ellem@optonline.net
    There's more than one way to do it, but only some of them actually work.