Entonces, sería algo así:
Código Perl:
Ver original$TMP = do { local $/; open $FILE, "</etc/awstats/web/$file"; <$FILE> }; $TMP =~ /^LogFile \s* = \s* " (.*?) "/x;
use File::Basename;
$RUTA_FILE = '';
if ($1) {
$RUTA_FILE = dirname $1;
}
Se puede abreviar un poco, pero más ofuscado.
Código Perl:
Ver originaldo { local $/; open $FILE, "</etc/awstats/web/$file"; <$FILE> } =~ /^LogFile \s* = \s* " (.*?) "/x;
use File::Basename;
$RUTA_FILE = $1 ? dirname($1) : '';
Utilizamos do{} para hacer la lectura de todo el fichero. Se lo pasamos a una expresión regular, que extrae la información de la entrada LogFile, de lo que hay entre llaves, de la cual extraemos solamente el directorio. Si no encontramos nada en el LogFile, pues obtenemos una cadena vacía.