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 }

Rispondi quotando