Soy nuevo con Perl, tengo un script para subir archivos pesados (pueden ser de varios GB) a un servidor web (una nube) escrito en bash. No lo escribí yo pero lo estuve retocando para agregarle funcionalidades.
Ahora necesito hacer lo mismo pero con un script de Perl y la función que se encarga de subir los archivos me está dando problemas:
Using bash Syntax Highlighting
- upload()
- {
- local COUNT=$(((SIZE - OFFSET + CHUNK - 1)/CHUNK))
- echo -n "Uploading $COUNT chunks of $CHUNK bytes: "
- dd bs=$CHUNK count=0 skip=$((OFFSET/CHUNK)) 2>/dev/null
- for ((OFFSET = OFFSET/CHUNK; OFFSET*CHUNK < SIZE; OFFSET++)); do
- head -c $CHUNK | curl -v -v -v --data-binary @- -K <(echo "$CSUSR") -f -s -H 'Content-Type: application/octet-stream' -H 'Content-Encoding: tar-gzip' -H 'Expect:' "${CSURI}drives/$DRIVE/write/$((OFFSET*CHUNK))"
- [ $? -eq 0 ] && echo -n . && continue || echo E
- cat <<EOF >&2
- Failed to write chunk $OFFSET of $COUNT: aborting
- Restart with '-d $DRIVE -o $((OFFSET*CHUNK))' to resume the upload
- EOF
- exit 1
- done
- echo " ------------------- Upload completed -------------------"
- }
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
Por favor, si alguien me puede dar una mano y decirme cómo hago esto mismo en Perl se los agradecería muchísimo.
Veo que hay llamadas a funciones externas, probé usar system("[comandos]") y $variable=`[comandos]` para ejecutarlas desde Perl pero no obtengo resultados.
Saludos