use strict; use warnings; use Tie::File; use Digest::MD5 qw(md5_hex); my @array; my $email='email@address.com'; tie @array, 'Tie::File', 'webpass.set' or die "$!"; foreach my $line (@array) { my ($user,$pass,$rest,$seed); if ($line=~/$email/ig){ ($user,$pass,$rest)=split(/::{1,10}/,$line,3); $seed=passgen(); #chomp $seed; $pass=md5_hex($seed); $line=$user."::".$pass."::".$rest; print $line; print "\nChanged \n"; print "\n\nNew Password:",&passgen; exit 0; } } print "sry - your email has not been found!\n\n"; sub passgen { my ($random_string, $char, @chars, $ret ); @chars=qw(a b c d e f); foreach (1..7) { $random_string.= $chars[rand @chars]; } return $random_string; }