Ho una funzione di seguito in perl"Troppi argomenti" quando si passa un array al sub Perl?
sub create_hash()
{
my @files = @_;
foreach(@files){
if(/.text/)
{
open($files_list{$_},">>$_") || die("This file will not open!");
}
}
}
io chiamo questa funzione passando un argomento di matrice come qui di seguito:
create_hash(@files2);
L'array ha in tutto 38 i valori in esso. Ma sto ottenendo gli errori di compilazione:
Too many arguments for main::create_hash at ....
che cosa è il torto che sto facendo qui?
mia versione perl è:
This is perl, v5.8.4 built for i86pc-solaris-64int
(with 36 registered patches, see perl -V for more detail)
Togliere il '()'? (Come in 'sub create_hash {..}') –
cosa succede se chiami la tua funzione come: create_hash (files2); (senza segno "@" – Arfeen
@ pst se rimuovo l'errore è: Array trovato dove l'operatore si aspetta alla riga process.pl 71, alla fine della riga (È necessario predeterminare create_hash?) errore di sintassi al processo .pl line 71, vicino a "create_hash @ files2" – Vijay