Hola Ariel, bueno existen dos cosas con tu problema, si lo que quieres
es hacer un tar desde Perl, ¿por qué no utilizas un modulo de Perl?,
por ejemplo:<br>
<br>
____________________________________________________________________<br>
#!/usr/bin/perl<br>
<br>
use strict;<br>
<br>
use Archive::Tar;<br>
use POSIX ('locale_h', 'strftime');<br>
<br>
my $tar = Archive::Tar->new;<br>
<br>
$tar->add_files('/chicharo/Antonio.txt', '/chicharo/Viernes 27 de mayo de 2005.doc');<br>
$tar->write('backup-'.(strftime "%d%m%y", localtime).'.tar');<br>
____________________________________________________________________<br>
<br>
El script anterior genera archivos tar con un formato como el de tu
problema, para agregar archivos se puede hacer $tar->add_files(
@filenamelist ), al correr el script se genera algo así:<br>
<br>
soyyo@tezcatlipoca:~$ ./crea_tar.pl<br>
soyyo@tezcatlipoca:~$ tar tvf backup-020206.tar<br>
-rwxr-xr-x soyyo/soyyo 4376 2006-01-26 21:55:20 chicharo/Antonio.txt<br>
-rwxr-xr-x soyyo/soyyo 175616 2006-01-30 00:05:32 chicharo/Viernes 27 de mayo de 2005.doc<br>
soyyo@tezcatlipoca:~$<br>
<br>
Ahora bien, si lo quieres hacer desde una llamada al sistema, pues antes que nada pon bien el comando:<br>
<br>
soyyo@tezcatlipoca:~$ tar -cfv respaldo-$(date +%d%m%y).tar<br>
tar: respaldo-020206.tar: No se puede stat: No existe el fichero o el directorio<br>
tar: Salida con error demorada desde errores anteriores<br>
soyyo@tezcatlipoca:~$<br>
<br>
El comando tar aún no adivina de que quieres hacer el archivo, así que
de momento tendrás que pasarle los archivos que quieres incluir en
él, antes que intentar hacerlo en Perl deberías probar tu comando
desde el shell, algo así:<br>
<br>
soyyo@tezcatlipoca:~$ tar cfv respaldo-$(date +%d%m%y).tar /chicharo/*<br>
tar: Removing leading `/' from member names<br>
/chicharo/Antonio.txt<br>
/chicharo/Viernes 27 de mayo de 2005.doc<br>
soyyo@tezcatlipoca:~$ <br>
<br>
Si estás trabjando con el tar de gnu utiliza tar cvf, de lo contrario
tar -cf Ya estando satisfecho con la salida desde el shell, pues a
transportarlo a Perl:<br>
<br>
____________________________________________________________________<br>
#!/usr/bin/perl<br>
<br>
use strict;<br>
<br>
system ('tar cfv respaldo-$(date +%d%m%y).tar /chicharo/Antonio.txt /chicharo/Viernes\ 27\ de\ mayo\ de\ 2005.doc');<br>
____________________________________________________________________<br>
<br>
Como nota final, es necesario aprender a distingir los problemas del
lenguaje de los problemas ajenos a él. En este caso, no es una
sustitución de variable lo que querías hacer sino una sustitución de
salida de comando a nivel sistema (cosa del sistema, no de Perl).<br>
<br>
Espero te sirva todo este rollo.<br>
<br>
Antonio "FunkyM0nk3y" Galindo.<br>
<br>
<br>