ragazzi, vi posto un codice che non capisco perchè mi genera tremila errori...mi aiutate??? sto cercando di imparare, ma mi sa che ho bisogno di aiuto
codice:
my $cosa= $ARGV[0]; #gestisce l'output
my $lungPSW= $ARGV[1]; #gestisce la lunghezza della PSW
my $numDiPSW=$ARGV[2]; #gestisce il numero di PSW da creare
BEGIN { srand() if $] < 5.004 } #avvia srand se la versione del compilatore
#è inferiore alla 5.004
if($cosa eq 'file'){subfile($lungPSW,$numDiPSW);} #se si vuole scrivere su file
elsif($cosa eq 'schermo'){subschermo($lungPSW,$numDiPSW);}#se si vuole scrivere su schermo
else{die "Parametro errato: ".$a." al posto di file o schermo";}#errore
sub subfile(){ #sub che scrive su file
$len=$_[0]; #accetta il parametro della lunghezza
$times=$_[1]; #accetta il numero delle volte che deve generare le password
print "Inserisci il file: ";
chomp($path=<STDIN>); #aquisisce l'indirizzo del file
open PSW, ">", $path;
for($i=1;$i<=$times;$i++){
$p=genera($lung);
print PSW $p;}
close PSW;
}
sub subschermo(){ #sub per scrivere su schermo
$len=$_[0]; #accetta il parametro della lunghezza
$times=$_[1]; #accetta il numero delle volte che deve generare le password
for($i=1;$i<=$times;$i++){
$p=genera($len);
print "$p\n";}
}
sub genera(){
$lung= shift;
for($i=1;$i<=$lung;$i++){ #e ripete la generazione finchè non raggiunge
#le volte richieste
$n=rand 200;
if($n%3==0){ #se è multiplo di tre mettiamo una lettera
if($n<=100){ #mettiamo una lettera maiuscola
$k=int(rand(25));
$k+=65;
$m=chr($k);
}
else{ #mettiamo una lettera minuscola
$k=int(rand(25));
$k+=97;
$m=chr($k);
}
}
else{ #se non è multiplo di tre mettiamo un numero
$m=int(rand(10));
$m+=48;
}
$PSW=$PSW.$m; #aggiunge alla password l'ultimo carattere appena creato
}
$fin=substr($PSW,0,$lung); #estrae una sottostringa in modo da avere una psw
#della lung richiesta
}