En Perl se puede usar la función stat() para saber el tamaño de un fichero, pero pasa saber el tamaño de un directorio, habría que hacer una búsqueda recursiva por todo el árbol e ir mirando el tamaño de cada uno. A veces, sí, es mejor usar un comando externo o un módulo que nos de esa funcionalidad, como puede ser
File::Size.
Para ejecutar un comando externo:
* usar la función system() del Perl
* el comando ha ejecutar está en el path del usuario que lo va a ejecutar o, en su defecto, poner el path completo dentro de system (/usr/bin/du)
* el comando ejecutado por el usuario tiene permisos sobre los ficheros en los que va a obtener información o les va a modificar.
El resultado es una línea, sí. Y para obtener el primer campo, hacer un split, pero en lugar de /s, mejor usar ' ' (ver el porqué en la doc de
split).