Fede865
08-11-2010, 09:53
Salve a tutti.. sto svolgendo un esercizio dove mi chiede di leggere da un file: nome cognome e matricola, creare due cartelle, una cognome scritto in maiuscolo e una nome scritta in minuscolo.
Poi per ogni cifra di matricola, se la cifra è pari creare il file corrispondente all'ordine della cifra nella cartella nome, altrimenti in cognome.
E ogni file deve contenere la cifra di matricola.
ESEMPIO: leggo da un file Nome Cognome 5674
creo la cartella COGNOME
creo la cartella nome
all'interno di cognome dovrò creare i file: 1.txt(contenente 5), 3.txt (contenente 7);
all'interno di nome dovrò creare i file: 2.txt(contenente 6), 3.txt (contenente 4);
io non riesco a creare i file nelle corrispondenti cartelle...
la mia soluzione crea le cartelle e file fuori..
#! /usr/bin/perl
open(FILE,$ARGV[0]);
$_=<FILE>;
/(\w+)(\w+)([0-9]+)/;
@elementi=split(' ',$_);
$cognome=$elementi[0];
$nome=$elementi[1];
$matr=$elementi[2];
close FILE;
$cognome=uc($cognome);
qx{mkdir $cognome};
$cnome=lc($nome);
qx{mkdir $nome};
@cifra=split (//,$matr);
foreach $cifre (@cifra)
{
$i++;
if (($cifre%2)=~0)
{
`cd $nome`;
}
else
{
`cd $cognome`;
}
`touch $i.txt`;
open FILE2, ">$i.txt";
print FILE2 $cifre;
close FILE2;
}
AIUTATEMIII... grazie:)
Poi per ogni cifra di matricola, se la cifra è pari creare il file corrispondente all'ordine della cifra nella cartella nome, altrimenti in cognome.
E ogni file deve contenere la cifra di matricola.
ESEMPIO: leggo da un file Nome Cognome 5674
creo la cartella COGNOME
creo la cartella nome
all'interno di cognome dovrò creare i file: 1.txt(contenente 5), 3.txt (contenente 7);
all'interno di nome dovrò creare i file: 2.txt(contenente 6), 3.txt (contenente 4);
io non riesco a creare i file nelle corrispondenti cartelle...
la mia soluzione crea le cartelle e file fuori..
#! /usr/bin/perl
open(FILE,$ARGV[0]);
$_=<FILE>;
/(\w+)(\w+)([0-9]+)/;
@elementi=split(' ',$_);
$cognome=$elementi[0];
$nome=$elementi[1];
$matr=$elementi[2];
close FILE;
$cognome=uc($cognome);
qx{mkdir $cognome};
$cnome=lc($nome);
qx{mkdir $nome};
@cifra=split (//,$matr);
foreach $cifre (@cifra)
{
$i++;
if (($cifre%2)=~0)
{
`cd $nome`;
}
else
{
`cd $cognome`;
}
`touch $i.txt`;
open FILE2, ">$i.txt";
print FILE2 $cifre;
close FILE2;
}
AIUTATEMIII... grazie:)