久久亚洲精品成人_国产精品欧美综合亚洲_亚洲va天堂va欧美ⅴa在线_91色视频在线观看_久久影院亚洲_一级黄色片播放_日韩av在线一区_精品一区二区在线看_老头吃奶性行交视频_日韩免费高清视频_天天操天天爽天天干_日本欧美在线视频

首頁 > 編程 > Perl > 正文

Perl直接入門詳盡指南

2024-09-08 23:41:17
字體:
來源:轉載
供稿:網友

  最近接到一個任務是這樣的,一臺solaris服務器上需要運行一個腳本,每天統計mysql數據庫中的數據并生成報表。本來這是一個可以就事論事的小項目,但是為了以后的靈活和可擴展性,我設計了一個使用xml做統計模版配置的方案。由于在bash下不太好實現xml的訪問,因此我考慮用perl來實現這個腳本。

  perl是一個強大的腳本語言,本來是設計應用在文本處理方面的,但是后來發展的越來越強大,已經可以處理網絡、圖形、系統、文件等等各個方面的內容。perl本身內置了豐富的操作符和函數,外部也有多年積累下來的大量模塊。但是不知道什么原因在國內好像很少有人用。關于perl的歷史我就不多說了,有興趣可以上網查一下。有一點要說的是,目前perl最新的版本是5.8.6,而perl6雖然已經設計很久了但是由于自舉問題目前還沒有一個可用的版本。為了解決這個問題,臺灣的唐宗漢發起的pugs項目正在快速的實施中,可能很快就能有結果了,有興趣的朋友可以多多關注一下,也許還可以為開源世界做點貢獻。

  雖然很早以前就了解過perl,但是從來就沒有實際的用它做過項目,因此這次的實現是一個邊學邊做的過程。作為一個程序員,學習一種新的語言總會有一點慣性思維,加之perl在語法上與c語言比較類似。因此我想在這片文章中主要以c為背景做一個比較。這種比較不是比較語言上的優劣,而是說明同樣的功能如何在perl中實現以及之間的區別。限于篇幅,具體的技術實現的細節我就不在這里多說了,你可以在末尾的資源一節中找到很多相關的文章。如果你沒有接觸過perl,我想你可能更希望看到學習perl的過程中可能會遇到的一些問題以及解決方法。

工欲善其事,必先利其器

  要寫代碼,首先至少得有一個編輯器。perl是跨平臺的一種解釋型語言,可以在unix/linux/windows/mac等平臺上運行。具體對應平臺上的編輯器,最簡單的方案是unix下用vi,windows下用ultraedit。當然也有商業化的ide,不過我嘗試了一下發現并不是那么的好用,因此我在windows平臺上以ultraedit作為編輯環境,完成后移植到solaris平臺上。

  關于環境的搭建,有這樣幾個需要注意的地方:

  1、 windows平臺下對應的是activeperl,可以免費下載。

  2、 去ue的網站上下載perl的autocomp文件,可以實現自動完成功能。

  3、 下載perl對應的語法加亮的tag文件并加入到ue中,可以更塊的發現拼寫錯誤。

  4、 在ue設置一個快捷工具,命令行為c:/perl/bin/perl.exe "%f"(捕獲輸出),可以實現快速運行并顯示結果。

  5、 如果你不喜歡ue,那么我推薦source insight

  巧婦難為無米之炊

 

  起始從某種角度來說,程序員和廚子是一樣的。要做出一桌大餐來,首先得看看手上有什么原料,然后才能琢磨一下用這些東西能做出什么好吃的來。或者說想做什么東西,得先備好料才行。

  看看我們現在都有什么:一個編輯器,一個perl的開發環境,還有一個聰明的腦袋。這個任務中,我要處理命令行參數、訪問mysql數據庫(sql)、讀寫xml的配置文件以及輸出一個固定格式的報表文件。

  好了,去查查資料,看看訪問數據庫和讀寫xml都需要什么東西。正如同c語言本身帶了很多標準函數庫一樣,perl本身也有函數庫,并把這些函數庫稱為module(模塊)。查了一下資料,發現要訪問mysql數據庫需要dbi和dbd::mysql兩個模塊,那么去哪里找這些模塊呢。這里給大家介紹一個perl的module集散地 www.cpan.org,這里包含了八千多個module,可以從這里下載到幾乎各種各樣的module。可以手工下載后安裝,也可以使用工具來自動安裝。在windows下是可以使用ppm進行自動安裝,例如dbd的安裝過程如下:

  c:/>ppm

  …

  ppm> search dbi

  searching in active repositories

  … 一大堆與dbi相關的包的列表,其中就包括dbi這個包

  ppm>install dbi

  …

  ppm>install dbd::mysql 如果知道模塊的名字也可以直接安裝

  …

  ppm>quit

  如此就安裝完成了。附帶說一下,linux下沒有ppm,但是有類似的方式。輸入命令行

  perl –mcpan –e shell

  然后install dbi; install dbd-mysql,和上面的操作幾乎是一樣的。


  提示:如果是在linux下安裝dbd::mysql模塊,需要把mysql的bin目錄包含在環境變量path中,否則會提示找不到mysql_config文件。mysql一般是安裝在/usr/local/mysql下,因此可以通過執行命令行path=$path:/usr/local/bin/mysql/bin來將此路徑加入到環境變量中。

  訪問xml有幾種包可以選擇:使用dom和simple模塊。simple模塊是把xml用perl的數組方式表示,而dom是w3c維護的一個基于樹的xml文檔標準。具體用哪種就看個人的需要了。我使用的是dom,因此要安裝xml-dom包,方法同上。

  芝麻開門

 

  說起編程語言,簡單的來說無非就是這樣幾個必不可少的基本元素:變量、數據、表達式、流程控制語句(包括條件、分支、循環)、函數、對象。具體到語言上,大部分的內容只是表達的形式不同而已。而perl與c又有什么區別呢?

  首先要知道,perl是一種腳本語言。所謂的腳本,就是沒有主函數,從最開始一行一行的按照順序解釋執行(老版basic不也是如此嗎)。因此,盡管把你的思路轉化為流程用perl表達出來吧。

  其次,perl的設計中參考了很多語言的長處,并避免了設計上的缺陷。因此perl的很多語法你可能都會覺得似曾相識。我把perl的語法總結了一下,和c語言做了一個簡單的對比表格。表格左右兩邊的語句是c和perl對應表達同一個功能各自的不同方式。如果讀者有c語言的經驗,相信看到這個對比可以很快的上手吧?

語法元素

cperl

perl語法說明

注釋

/* … */

# …

只支持單行注釋

變量

int a, b, c;

char c=’a’;

int x[10];

my ($a, $b, $c);

my $c='a';

my @x;

my %h;

聲明使用my標示

表示值的變量以$開頭,表示數組的變量以@開頭,表示哈希表的變量以%開頭。

聲明可以省略(不建議)

字符串

char* h1=”hello/n”;

char* h2=”hello//n”;

$h1=”hello/n”;

$h2=’hello/n’;

雙引號解釋內部的/n,而單引號則不解釋

一維數組

int arr[10];

arr[0]=0;

for(i=0;i<10;i++)

arr[i]=i;

my @arr;

$arr[0]=0;

@arr[3..5]=(3..5);

數組聲明以@標示

動態數組,不需要指定大小

數組下標從0開始

訪問數組元素值的時候,要以$開頭表示訪問的是數值

[3..5]表示數組中下標為35之間的元素組成的數組

數組之間可以直接賦值

多維數組

int arr[10][10];

arr[0][1]=9;

my @arr;

$arr[0][1]=9;

perl并不直接支持多維數組,而是以數組引用的方式間接支持。例如arr[0]的內容就是一個數組的引用地址。

指針

char c;

int* x=&c;

c='a';

printf(*x);

my $c;

my $x=/$c;

$c='a';

print $x;

/c中的&類似,意思是取引用

 

void hello() {

  printf(“hello/n”);

}

void (*hi)()=hello;

(*p)();

sub hello{

       print "hello/n";

}

my $hi = *hello;

&$hi;

&表示調用函數

*取函數的代碼地址

不必用括號把參數括起來

調用時的括號也是可選的

條件語句

if (x>0) x=0;

x>0 ? x=0 : ;

if ($x>0) { $x=0; }

$x=0 if $x>0;

$x=0 unless $x<=0;

$x>0 ? $x=0 : ;

if 結構可以反轉,意義不變,注意前句沒有分號。

顧名思義, unless是“除非”的意思。這里的四個表達方式是等價的。注意第一種方式中,條件部分的圓括號和語句部分的花括號是不可省略的。

循環語句

foreach (@arry)

foreach my $key(@ary)

foreach $count (1..10)

for/while的語法都和c類似。

foreach關鍵字也可以用for,意義不變。

函數

int max(int x, int y)

{

  return x>y?x:y;

}

 

int n=max(1,2);

sub max

{

       my ($x, $y)[email protected]_;

       return $x>$y?$x:$y;

}

my $n=max(1,2)

注意下劃線”_”也是一個合法的變量名。而@_perl內置的一個數組,內容為函數的參數。

my ($x, $y) 表示聲明了一個有兩個元素的數組,并將兩個元素映射到$x$y上。

($x,$y)[email protected]_;則表示兩個數組之間的復制,@_中對應的元素的值就賦值給了$x$y.這是一個簡便的寫法,也可以這樣寫

my $x=$_[0]; my $y=$_[1];

return是可選的,默認返回最后一個表達式的值

語法約束

1.       編譯時打開編譯器所有的警告選項

2.       使用lint工具

 

3.       perl –w myprogram.pl 打開運行警告開關,如果運行時perl檢查到了可能的錯誤,會顯示警告信息,否則它默認是什么也不提示繼續執行。

4.       #!/usr/bin/perl –w 在代碼文件第一行中加入-w選項開關

5.       use strict; 使用嚴格語法約束

運行

編譯后直接執行

 

1.       perl myprogram.pl 手工執行

2.       #!/usr/bin/perl

unix下在代碼第一行加入,然后給文件加上可執行的屬性 chmod +x myprogram.pl,之后就可以用./myprogram.pl命令來運行。

3.       windows下,安裝activeperl的時候,已經將.pl后綴的文件和perl的解釋程序關聯起來了,因此直接雙擊文件圖標就可以運行。


  需要說明的是,在perl的世界中有一句名言“條條大路通羅馬”, 這句話的意思是說同樣一件事情perl允許你用很多種不同的方式去做。因此上表的例子風格是按照c的習慣來寫的,并且為了簡化起見,只是挑選了與c相似的內容。事實上,perl包含了很多c沒有的東西,例如內置的hash表、隊列、正則表達式、格式定義等等。

  從框架開始
  perl有很多表達方式,我們可以選擇一種自己熟悉、容易理解的方式來寫perl的程序。例如,你是一個經驗豐富的c程序員,那么你可以選擇以c的風格來寫perl程序。下面是一個小小的樣板框架

 

#!/usr/bin/perl -w

use strict;


# 程序開始的第一行語句,調用main函數

main();


# 定義main函數

sub main

{



}


  在這個框架下面,你幾乎可以容易就開始你的perl開發了。如果需要處理命令行參數,就可以稍微的擴展一下這個框架。

#!/usr/bin/perl -w

use strict;

use getopt::std;

main();


my $configfile;


sub processoptions

{

my $version = '1.0.0';

my $usage = "pp.pl [-v | -c configfile]/n";

my $opts={};



die $usage unless( getopts("c:v", $opts) );

die $version if ($opts->{'v'});

$configfile=$opts->{'c'} ? $opts->{'c'} : 'config.xml' ;

}


sub main

{

processoptions();

print $configfile;



}


  實際上,剩余的工作和以往的工作差不多了,編寫一個一個的函數,并實現你的業務邏輯。對于你這樣一個聰明的程序員來說,學會perl是一個很容易的事情。

  常見問題
  以我的學習經驗來看,在開發的過程中可能有一些常用但是很分散的細節問題會讓你感到困惑。

  1、 程序的入口參數怎么取?

  內置數組@argv包含了所有的運行參數。可以打印出來看看 print @argv;

  2、 函數如何傳參數、取參數?

  每個函數內部都有一個內置的數組 @_ ,這個數組的元素就是函數的參數。例如傳入的第一個參數就是$_[0],第二個是$_[1]。唔,如你所見,perl的函數參數就是c中的動態參數。

  3、 默認變量是什么

  這個可能會把你的頭搞暈。有一個內置變量 $_ ,

  4、 顯示消息、退出常見的簡單寫法

  die ‘error on program’;


  也可以在條件不滿足的情況下使用

  die ‘configuration error’ unless($doc->getdocumentelement);


  5、 格式化輸出

  可以用簡單的print語句進行一般的輸出操作,如果需要復雜的格式化輸出,可以使用printf語句……跟c的用法幾乎是一樣的。

  printf("pi=%.6f", 355/113);


  6、 =>是什么東西?

  在使用hash表的時候,可以經常看到=>這個符號。例如這樣的一個定義:

  my $account={

  'simon'=> '[email protected]',

  'jesse'=> '[email protected]'

  };


  其實,=>符號跟逗號”,”是等價的。perl里面的hash表事實上是一個數組,只是把奇數位元素看做是key(鍵),而把偶數位的元素看做是value(值)。

  7、 關于引用的一點說明

  perl的引用類似c的指針,所謂的引用事實上就是地址。取一個變量的地址用反斜杠”/”操作符,例如 $p=/$x; 那么$p就是一個指向$x變量的指針。要引用指針的值,使用”$”操作符,例如 print $$p; 就是打印$x的值。

  引用不單單可以引用變量,也可以引用數組、hash表、函數,取函數的地址可以使用*操作符。

  還能做什么
  perl作為一個功能強大的腳本語言,可以應用在web 編程、數據庫、xml、系統管理、圖形圖像、自然語言、壓縮、加密、郵件系統、軟件測試等各個地方。在cpan上,你可以找到各種各樣你所需要的模塊支持。例如,你可以:

  編寫系統管理的腳本

  和apache結合起來,編寫cgi程序

  編寫動態網頁

  使用net命名空間下的類編寫網絡應用程序

  使用authen::captcha模塊實現提交時的驗證碼的功能

  使用storable模塊處理perl的各種數據結構

  使用gd/image::magick模塊處理圖形

  等等…

資源
  www.perl.org perl的官方站點

  www.perl.com o’reily 維護的關于perl的站點

  www.cpan.org perl的module資源大全

  www.perlchina.com 中國perl協會

  www.pm.org 世界各地的perl用戶組織

  www.perlmonks.org 用perl寫詩 j

  http://www-128.ibm.com/developerworks/cn/linux/sdk/perl/ ibm社區的perl系列文章

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
欧美资源在线观看| 中文字幕一区二区三区四区在线视频| 久久99精品国产.久久久久 | 久久不卡免费视频| 综合视频免费看| 色8久久人人97超碰香蕉987| 久久久精品人妻无码专区| 在线观看中文字幕亚洲| 欧美日韩在线观看免费| 久久综合88中文色鬼| 97超视频在线观看| 欧美日韩在线三级| 夜夜躁日日躁狠狠久久av| 国产精品美女999| 国产精品久久久久久一区二区三区| av电影一区二区三区| 精品欧美黑人一区二区三区| 久久精品日韩欧美| 成年人性生活视频| 亚洲在线免费视频| 日韩欧美第一页| 视频二区在线观看| 麻豆免费在线观看视频| 久久久com| 欧美一卡二卡在线| 久久超碰97人人做人人爱| 99视频精品免费| 国产91精品青草社区| 日韩一区二区三区视频在线 | 蜜桃av噜噜一区二区三| 欧美精品v国产精品v日韩精品| 国产一区在线看| 国产第一页在线播放| 黄色一级片免费的| 亚洲综合小说区| 日韩综合中文字幕| 欧美又粗又大又爽| 紧缚捆绑精品一区二区| 亚洲色图欧美自拍| 精品综合在线| 中文字幕九色91在线| 亚洲三级小视频| 国产成人精品白浆久久69| 男操女免费网站| 91网站免费观看| 国产一区二区三区在线视频 | 丝袜 亚洲 另类 欧美 重口| 青青青在线视频播放| 极品尤物一区二区三区| 欧美高清视频在线| 欧美一三区三区四区免费在线看 | 亚洲精品视频久久久| 日本在线观看一区二区| 久久精品99久久久久久久久| 538在线一区二区精品国产| 成人午夜免费电影| 国产女主播福利| 国产av 一区二区三区| 久久午夜夜伦鲁鲁一区二区| 91久久精品久久国产性色也91| 日韩一区国产二区欧美三区| 亚洲天堂精品在线观看| 国产精品色综合| 欧美日韩精品区| 成人性视频免费看| 亚洲综合日韩欧美| xx欧美撒尿嘘撒尿xx| 欧洲久久久久久| 国产欧美亚洲精品| 欧美国产精品日韩| 天天影视涩香欲综合网| 国产精品久久久久婷婷二区次| 黄页网站大全一区二区| 麻豆91在线看| 国产同性人妖ts口直男| 丁香社区五月天| 91久久国产视频| 免费国产羞羞网站美图| 在线观看av免费观看| 日韩精品在线观看av| 天天爽天天狠久久久| 国产一区二区三区黄| 久久久久久久久四区三区| 亚洲影视中文字幕| 91精品国产综合久久男男| 日本a级片电影一区二区| 久久久久成人精品| 中日韩午夜理伦电影免费 | 国产67194| 日本一级免费视频| 欧美xxxxx在线视频| 一区二区不卡在线| 涩视频在线观看| 成人h视频在线观看播放| 欧美成人猛片aaaaaaa| 欧美成人精品福利| 国产欧美日韩在线看| 亚洲一区二区偷拍精品| 91精品国产欧美一区二区成人| 精品久久久91| 99re6热在线精品视频播放速度| 亚洲欧美日本国产有色| 超碰91在线播放| 久草视频手机在线观看| 91在线国内视频| **性色生活片久久毛片| 亚洲成av人乱码色午夜| 91在线网站视频| 妞干网在线免费视频| 紧身裙女教师波多野结衣| 久久深夜福利| 欧美三级xxx| 清纯唯美亚洲激情| 成人免费毛片网| 亚洲欧美自拍视频| 国产欧美一二三区| 中文字幕日韩免费视频| 欧美另类高清视频在线| 久久国产精品影院| 日本色综合中文字幕| 欧美日韩一区成人| 久久久国产影院| 黄色免费视频大全| 色av性av丰满av| 国产欧美中文在线| 中文国产亚洲喷潮| 日韩偷拍一区二区| 538精品在线观看| 久久精品亚洲国产奇米99| 亚洲精品xxxx| 91精品免费视频| 成年人看片网站| 农村少妇久久久久久久| 色婷婷久久久综合中文字幕| 日韩av片永久免费网站| 9久久婷婷国产综合精品性色| 欧美三级午夜理伦| 午夜精品一区二区三区免费视频| 51久久精品夜色国产麻豆| 欧美日韩亚洲一区二区三区四区| 青青在线视频观看| wwwav网站| 国产精品久久二区二区| 国产a∨精品一区二区三区不卡| 亚洲视频第一页| 欧美乱人伦中文字幕在线| 亚洲性生活网站| 成人毛片在线观看| 91久久精品网| 久久久久国产精品一区| 国产吞精囗交久久久| 亚洲色图制服丝袜| 色综合电影网| 久久一二三四| 51ⅴ精品国产91久久久久久| 日韩免费av一区| 欧美性videosxxxxx| 欧美 日本 亚洲| 青娱乐在线视频免费观看| 国产经典欧美精品| 欧美高清视频一区二区| 色婷婷精品久久二区二区密| 国产一区二区三区综合| 欧美国产在线电影| 国产免费一区二区三区网站免费| 国产精品高清亚洲| 精品一区二区日本| av在线免费在线观看| 中文字幕亚洲精品| 特级西西人体高清大胆| 欧美综合天天夜夜久久| www.av中文字幕| 国产一区二区免费视频| 国产主播精品在线| 91精品免费看| 99热国产在线观看| 亚洲欧美另类久久久精品| 日韩毛片在线看| 免费国产在线精品一区二区三区| 唐朝av高清盛宴| 久久久久久夜精品精品免费| 国产午夜精品理论片a级探花| 午夜不卡在线视频| 国产精品视频久久| av在线网址导航| 亚洲国产www| 色综合久久天天综合网| 国产欧美一区二区三区在线| 欧美黄片一区二区三区| 亚洲精品v欧美精品v日韩精品| www.狠狠爱| 欧美大片在线观看一区二区| 国产精品果冻传媒| 欧美日韩精品一区二区三区四区| 国产69视频在线观看| 日韩午夜精品视频| 国产在线免费av| 欧美一级高清大全免费观看| 日韩精品久久久久久久的张开腿让| 国产69精品久久久久9| 六十路息与子猛烈交尾| www.蜜臀av| 91精品久久久久| 精品亚洲成a人在线观看| 91丝袜脚交足在线播放| 九九热精彩视频| 伊人激情综合网| 久草视频在线免费| 色偷偷av一区二区三区乱| 精品在线播放视频| 91av在线网站| 五月婷婷开心中文字幕| 欧美日韩免费高清| 亚洲精品乱码久久久久久久久| 欧美激情精品久久久久久久变态 | 女王人厕视频2ⅴk| 精品国产污污免费网站入口 | 欧美视频在线观看一区二区| 美女福利视频在线| 精品久久久影院| www.久久精品.com| 黑人巨大国产9丨视频| 欧美老女人第四色| 午夜精品久久久久久久蜜桃| 九色91在线视频| 色婷婷久久99综合精品jk白丝| 午夜精品福利在线视频| 国产免费观看久久黄| 中文字幕一区二区三区蜜月 | 999精品在线视频| 91网在线免费观看| 精品久久久久人成| 国产精品久久久久久在线| 天堂v在线视频| 欧美群妇大交群中文字幕| 丝袜诱惑制服诱惑色一区在线观看 | 97超碰欧美中文字幕| 国产suv精品一区二区68| 欧美精品精品精品精品免费| 免费国产亚洲视频| 黄频视频在线观看| 亚洲精品中文字幕女同| 国产主播一区二区| 国内精品国产三级国产aⅴ久| 91av在线影院| 欧美最新大片在线看| 97在线观看视频免费| 国产欧美在线观看| 欧美亚洲一区二区三区四区| 日韩精品――中文字幕| jizzjizz国产精品喷水| 国产日韩欧美自拍| 欧美精品一区二区三| 亚洲色图制服诱惑| 精品国产av鲁一鲁一区| 精品无码在线观看| 欧美凹凸一区二区三区视频| 亚洲精品美女久久久久| 一区二区三区欧美日| 久久99蜜桃精品| 做爰视频毛片视频| 免费在线观看污| 三年中国国语在线播放免费| 亚洲乱码国产乱码精品天美传媒| 国内精品小视频在线观看| 精品日产卡一卡二卡麻豆| 亚洲二区在线视频| 97久久精品人人做人人爽50路| 神马午夜一区二区| 日韩特级黄色片| 日本少妇aaa| 又黄又爽的网站| 午夜精品久久久内射近拍高清| 日韩免费一区二区三区| 国产精品一二三视频| 88xx成人精品| 中文字幕日韩综合av| 亚洲国产成人精品久久| 一本一道久久a久久精品| 国产日韩欧美精品电影三级在线| 国产91绿帽单男绿奴| 一区二区三区精| 久草热在线观看| 久久久久久久久久久久久av| av资源在线免费观看| 私密视频在线观看| 成年人性生活视频| 三级在线免费看| 亚洲精品一区二区三区av| 国产高清自拍一区| 91久久嫩草影院一区二区| 国产经典一区二区| 国产精品入口尤物| 国产精品视频久久| 91在线看网站| julia一区二区中文久久94| 国产精品视频资源| 国产欧美一区二区三区在线| 91精品国产综合久久久久久丝袜| 亚洲精品国产综合区久久久久久久| 亚洲国产精彩视频| 激情视频在线播放| 久久久久久免费观看| 国产第一页在线播放| 69视频免费看| 午夜成人鲁丝片午夜精品| 综合激情网五月| 免费成人进口网站| 992tv在线成人免费观看| 26uuu另类亚洲欧美日本一| 欧美黄色成人网| 日本欧美精品在线| 国产视频福利一区| 国产精品二区在线观看| 91pron在线| 青娱乐一区二区| 97超碰人人爱| 亚洲成色www.777999| 日本少妇色视频| 日本二区三区视频| 五月天婷婷导航| 怡春院在线视频| 日本一区中文字幕 | 久久久久综合网| 久久婷婷成人综合色| 欧美性xxxxxxxxx| 有码中文亚洲精品| 国产成人精品自拍| 浮妇高潮喷白浆视频| 9.1成人看片免费版| 性生活视频软件| 久久一二三国产| 欧美一区二区在线观看| 欧美情侣性视频| 99re资源| 一本色道无码道dvd在线观看| 性欧美丰满熟妇xxxx性久久久| 欧美精品乱码视频一二专区| 亚洲天堂aaa| 九九九久久久精品| 中文字幕一区av| 亚洲国产精品成人精品| 5252色成人免费视频| 午夜精品一区二区在线观看| www.色欧美| 色屁屁影院www国产高清麻豆| 天天操天天插天天射| 欧美另类变人与禽xxxxx| 国产91在线看| 精品成人久久av| 国产精品视频网站| 国产精品久久久久久久久| 日韩三级电影| 欧美日韩在线视频免费| 成人av网站在线| 在线免费看av不卡| 天堂8在线天堂资源bt| 99久热在线精品996热是什么| 国产精品区一区二区三区| 91精品国产91久久久久久不卡| 漂亮人妻被中出中文字幕| 18岁成人毛片| 国产精品毛片一区二区在线看舒淇| 你懂的网站在线| 国产无遮挡又黄又爽在线观看| 天天干,天天干| 免费人成网站在线观看欧美高清| 久久蜜桃av一区精品变态类天堂 | 91精品小视频| 免费成人深夜天涯网站| 亚洲国产精一区二区三区性色| 亚洲精品中文字幕乱码三区91| 在线观看免费高清视频| 国产99久一区二区三区a片| 黄色资源网久久资源365| 久久九九久久九九| 欧美日韩一区免费| 日韩精品在线观| 国产精品av免费在线观看| 欧美日韩电影一区二区三区| av网站有哪些| 青青青国产在线| 成人激情免费网站| 在线成人激情视频| 一区二区三区免费看| 自拍偷拍一区二区三区四区| 日韩欧美色视频| 少妇饥渴放荡91麻豆| 2018国产精品| 超碰中文字幕在线| 成人精品一区二区三区四区| 日韩欧美国产系列| 中文精品无码中文字幕无码专区 | 亚洲精品自拍网| 九色|91porny| 91精品国产高清久久久久久久久| 中国极品少妇videossexhd| 99riav一区二区三区| 国产精品视频1区| 免费日韩在线视频| 欧美日韩精品免费观看视频| 一区二区国产日产| 最近中文字幕在线观看视频| 亚洲美女动态图120秒| 精品国产免费久久久久久婷婷| 中文字幕第一页久久| 欧美一区二区三区四区夜夜大片| 刘亦菲毛片一区二区三区| 91爱视频在线| 欧美特级黄色片|