aindergm escribiste:Yo lo que hago es pasar una dirección de un archivo Perl a otro de la siguiente manera:
my $response = `perl $dirPerl/perlPrueba.pl $dirComplete`;
pero claro la dirección esa se guarda en una cadena de caracteres de la siguiente manera:
$dirComplete="$dirFiles/$filesElement";
Y si esto se hace con comillas simples no lo guarda bien, es decir guarda lo que hay escrito, y no los valores que tienen esas cadenas.
Pero es que de esto no estamos hablando, ¿no? Solo estamos hablando de extraer datos de una variable escalar que contiene un texto como el que indicabas antes.
Tanto las comillas invertidas como las dobles, en estos dos ejemplos, solo muestran la forma de interpolar las variables que hay dentro de esas comillas. Pero extraer los datos es otra cosa.
aindergm escribiste:Y el código del archivo perlPrueba.pl es el siguiente:
$dirData = $ARGV[0];
my($ID, $out) = $dirData =~ m/\\ID-(\d+)\\(.+?)_/;
print "[$ID][$out]\n";
Pero, ¿qué contiene $dirData? Si es el nombre de un archivo, mal vamos... porque no estamos leyendo el archivo. Solo estás aplicando la expresión regular
al nombre del archivo, y no
a su contenido.