1. #!/usr/bin/perl -w 
  2. ######################## 连接数据库, 将数据库中查找出来的 城市 中文名字和 英文名字 分别放到数组 
  3. use DBI; 
  4. use DBD::mysql; 
  5. # 连接数据库,地址 账户 密码 
  6. my $dbh = DBI -> connect("DBI:mysql:db_iplocate;host=127.0.0.1""admin","admin",{RaiseError=>1}); 
  7. #  sql命令 
  8. my $sth = $dbh->prepare( q{select city_cn,city_en from `gps`}) or die("Cannot prepare statement:", $dbh->errstr(),"\n"); 
  9. # 执行sql命令 
  10. my $rc = $sth->execute() or die("Cannot execute statement:", $sth->errstr(), "\n"); 
  11.  
  12. # 初始化两个数组,将来用来装 城市的 中文名字 和 英文名字 
  13. my @city_cn; 
  14. my @city_en; 
  15.  
  16. # 将从mysql得到的city_cn和city_en放到相应的数组中 
  17. while (my @row = $sth -> fetchrow_array()){ 
  18.     push @city_cn,$row[0]; 
  19.     push @city_en,$row[1]; 
  20. warn($DBI::errstr) if $DBI::err; 
  21. $dbh->disconnect(); 
  22. $sth->finish(); 
  23. ####################### 按照每个 城市 3个运营商进行生成 相应的命令, 并执行相应的命令,将下载的东西放到 当前目录的 
  24. # 初始化两个数组, 用来装 运营商的 中文名字 和英文名字 
  25. my @isps_cn = ("移动","联通","电信"); 
  26. my @isps_en = ("ChinaMobile","ChinaUnicom","ChinaTelecom"); 
  27. foreach $i(0..(@city_cn-1)){ 
  28.     foreach $j(0..2) { 
  29.         $page_url = 'wget http://www.5maila.com/ipa.php?' . "$city_cn[$i]" .'%20' . "$isps_cn[$j]" . ' -O ' .  "$city_en[$i]" ."_""$isps_en[$j]" ; 
  30.         print `$page_url`; 
  31.     }