On Wed, 10 Jul 2002 11:52:55 -0400, [EMAIL PROTECTED] wrote: >This is what I have now. >....... >The only problem seems to be the >use strict; directive >if I take this out it works fine > >So I guess I need to know if the use strict; directive is really >necessary and if so how do I get around it? > >Thanks
In addition to what the others have said about declaring your variables and using strict; there is one other thing you must do to work with strict. You must return the value of your get_date subroutine. Without strict, the $date is global, so it works. With strict, $date must be returned to a value. ############################################################ #!/usr/bin/perl use warnings; use strict; # Here we define the variables my $htpasswd = 'c:\apache\htdocs\members\.htpasswd'; my $database = 'c:\apache\members.db'; print "Content-type: text/html\n\n"; print 'Please write this down as it will not be emaild ', "\n"; print 'for your own security ', "\n"; # Here is the random gereration string. my ( $username, $password ) = ( random_string(), random_string() ); print "Username: $username\n"; print "Password: $password\n"; sub random_string { my ($string) = ''; my ($length) = 8; my (@chars) = ( 'A' .. 'Z', 'a' .. 'z', 0 .. 9 ); while ( length($string) != $length ) { $string .= $chars[ rand @chars ]; } return ($string); } # get the date now! my $date = &get_date; print "$date\n"; # everything ok, let's write to database. open( DATABASE, ">>$database" ); flock( DATABASE, 2 ); print DATABASE "$username|$password|$date\n"; flock( DATABASE, 8 ); close(DATABASE); # everything ok, now we write to the password file. my $uselog = 1; if ( $uselog eq '1' ) { open( LOG, ">>$htpasswd" ); print LOG "$username:$password\n"; close(LOG); } sub get_date { my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) = localtime(time); my @months = ( "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12" ); my @digits = split ( //, $sec ); my $size = @digits; if ( $size == 1 ) { $sec = "0$sec"; } @digits = split ( //, $min ); $size = @digits; if ( $size == 1 ) { $min = "0$min"; } $year = $year + 1900; my $date1 = "$months[$mon]/$mday/$year"; return $date1; } -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]