Estoy haciendo un programa para bajarme de forma automática unos ficheros de una web. Si lo ejecuto directamente desde el shell con curl, me descarga el fichero sin problemas:
Using bash Syntax Highlighting
- $ curl "http://nomads.ncep.noaa.gov/cgi-bin/filter_gfs.pl?file=gfs.t00z.pgrbf00.grib2&lev_10_m_above_ground=on&var_UGRD=on&var_VGRD=on&subregion=&leftlon=-20&rightlon=20&toplat=40&bottomlat=20&dir=%2Fgfs.2012042800" -o myfile
- % Total % Received % Xferd Average Speed Time Time Time Current
- Dload Upload Total Spent Left Speed
- 101 2942 0 2942 0 0 2268 0 --:--:-- 0:00:01 --:--:-- 12057
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4
Pero con el siguiente fichero perl no lo consigo... ¿algún consejo? ¿Diría que por el mensaje me falta descargar el módulo de curl? Me sale el mensaje inferior, después del script.
Using perl Syntax Highlighting
- #!/usr/bin/perl -w
- # ************************************************************************** #
- # Script para bajar ficheros de una web #
- # ************************************************************************** #
- # ----------------------------------------------------------------------------
- # Directoris
- # ----------------------------------------------------------------------------
- $homeWWW3 = '/home/enric/opt';
- $DadesGribWWW3 = "$homeWWW3/gribs";
- # ----------------------------------------------------------------------------
- # Arguments del programa: data [yyyymmdd]hh
- # ----------------------------------------------------------------------------
- my $date = shift;
- if (not defined $date or $date!~ /^\d{8,10}$/) {
- print "Us del programa: $0 yyyymmdd[hh]\n";
- print "Ex: $0 2012042700\n";
- exit 1;
- }
- # ----------------------------------------------------------------------------
- # Creamos el directorio para descargas de los grib
- # ----------------------------------------------------------------------------
- $Datos_grib = "$DadesGribWWW3/$date";
- escriu("Creando datos");
- mkdir("$Datos_grib")or warn $!;
- {
- chdir("$Datos_grib");
- }
- # ----------------------------------------------------------------------------
- # Bajada ficheros
- # # ----------------------------------------------------------------------------
- #$curl="curl";
- # grib2 files del operational nomads server
- # #
- # #
- @args = ("curl "http://nomads.ncep.noaa.gov/cgi-bin/filter_gfs.pl?file=gfs.t00z.pgrbf00.grib2&lev_10_m_above_ground=on&var_UGRD=on&var_VGRD=on&subregion=&leftlon=-20&rightlon=20&toplat=40&bottomlat=20&dir=%2Fgfs.2012042800" -o mygrib");
- system(@args) == 0 or die "system @args failed: $?";
- sub escriu
- {
- my @missatge = @_;
- chomp (my $hora = `date |awk '{print \$4}'`);
- print "-----> $hora @missatge\n";
- }
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
Mensaje de error al ejecutar el script:
Using bash Syntax Highlighting
- $ ./Get_gfs_control_dominis.pl 2012042800Can't locate WWW/Curl.pm in @INC (@INC contains: /usr/local/lib64/perl5/site_perl/5.10.0/x86_64-linux-thread-multi /usr/local/lib/perl5/site_perl/5.10.0 /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/5.10.0 /usr/lib/perl5/site_perl .) at ./Get_gfs_control_dominis.pl line 17.
- BEGIN failed--compilation aborted at ./Get_gfs_control_dominis.pl line 17 (#1)
- (F) You said to do (or require, or use) a file that couldn't be
- found. Perl looks for the file in all the locations mentioned in @INC,
- unless the file name included the full path to the file. Perhaps you
- need to set the PERL5LIB or PERL5OPT environment variable to say where
- the extra library is, or maybe the script needs to add the library name
- to @INC. Or maybe you just misspelled the name of the file. See
- perlfunc/require and lib.
- Uncaught exception from user code:
- Can't locate WWW/Curl.pm in @INC (@INC contains: /usr/local/lib64/perl5/site_perl/5.10.0/x86_64-linux-thread-multi /usr/local/lib/perl5/site_perl/5.10.0 /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/5.10.0 /usr/lib/perl5/site_perl .) at ./Get_gfs_control_dominis.pl line 17.
- BEGIN failed--compilation aborted at ./Get_gfs_control_dominis.pl line 17.
- at ./Get_gfs_control_dominis.pl line 17
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Supongo que he de cargar el módulo de Curl, ¿cuál es, exactamente? Muchas gracias y buen fin de semana.