[Perl] funcion system

Salvador Ortiz Garcia sog en msg.com.mx
Jue Feb 2 16:23:04 CST 2006


On Thu, 2006-02-02 at 11:15 -0400, Ariel E. Pedrozo - Sysadmin wrote:
> 
> Buenas Señores... como andan ??? espero que bien quiero hacerles una
> consultita.... como puedo pasarle a la funcion system 1 variable ??? 
> 
> lo tengo asi... 
> 
> system('tar -cf backup-$(date +%d%m%y).tar'); 
> 
> Si le pongo el directorio en duro, funciona.... pero yo quisiera
> colocarle una variable.... pero no me funciona !!!! 
> 
Cuál variable le estas queriendo pasar? No veo ahí ninguna variable de
perl.

Así como lo tienes, con comillas sencillas el tar debe de funcionar, el
problema esta en otro lado.

La expresión $(date +%d%m%y) es para que la evalúe tu bash.

Ahora que si te quieres ahorrar dos forks (shell y date) yo calcularía
la fecha desde perl con POSIX::strftime.

use POSIX qw(strftime);
...

my $date = strftime('%d%m%y',localtime(time));
system('/bin/tar', '-cf', "backup-${date}.tar");


Saludos.

-- 
Salvador Ortiz Garcia <sog en msg.com.mx>
Matías Software Group



Más información sobre la lista de distribución Perl