#!/usr/bin/perl use strict; use warnings; use CGI; use CGI::Carp 'fatalsToBrowser'; my $q = CGI->new; print $q->header; my $saved = "savedpasswords.txt"; my @chars = ( "A" .. "Z", "a" .. "z". 0 .. 9 qw( ! @ $ % ^ & *) ); open(SAVEDPW, "< $saved") or die $!; flock(SAVEDPW, 1) or die $!; my @stored = ; close(SAVEDPW); chomp(@stored); my $pw; # attempt at looping unless ($_ ne @stored) { $pw = join(@chars[map{rand @chars} (1..17)]; } # loop is over, we have a new password print "Your new password is: $_"; open(SAVEDPW, ">> $saved") or die $!; flock(SAVEDPW, 2) or die $!; print SAVEDPW "$_\n"; close(SAVEDPW);