#!/usr/bin/perl use CGI::Carp 'fatalsToBrowser'; use strict; use warnings; use CGI; my $query = CGI->new; print $query->header; my $usedpw = "logfile.txt" ; my @chars = ( "A" .. "Z", "a" .. "z", 0 .. 9, qw(! @ $ % ^ & *) ); my $pw = join @chars[map{rand @chars} (1..17)]; # opening for reading open(USEDPW, "< $usedpw") or die $!; flock USEDPW, 1; close(USEdPW); while (1) { my @chars = ( "A" .. "Z", "a" .. "z", 0 .. 9, qw(! @ $ % ^ & *) ); if ($usedpw ne m/$pw/) { print "Your unique password is: $pw\n"; } } open(USEDPW, "> $usedpw") or die $!; flock USEDPW, 2; print USEDPW "$pw\n"; close(USEDPW);