亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > Perl > 正文

Perl直接入門詳盡指南

2024-09-08 23:41:17
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  最近接到一個(gè)任務(wù)是這樣的,一臺(tái)solaris服務(wù)器上需要運(yùn)行一個(gè)腳本,每天統(tǒng)計(jì)mysql數(shù)據(jù)庫(kù)中的數(shù)據(jù)并生成報(bào)表。本來(lái)這是一個(gè)可以就事論事的小項(xiàng)目,但是為了以后的靈活和可擴(kuò)展性,我設(shè)計(jì)了一個(gè)使用xml做統(tǒng)計(jì)模版配置的方案。由于在bash下不太好實(shí)現(xiàn)xml的訪問(wèn),因此我考慮用perl來(lái)實(shí)現(xiàn)這個(gè)腳本。

  perl是一個(gè)強(qiáng)大的腳本語(yǔ)言,本來(lái)是設(shè)計(jì)應(yīng)用在文本處理方面的,但是后來(lái)發(fā)展的越來(lái)越強(qiáng)大,已經(jīng)可以處理網(wǎng)絡(luò)、圖形、系統(tǒng)、文件等等各個(gè)方面的內(nèi)容。perl本身內(nèi)置了豐富的操作符和函數(shù),外部也有多年積累下來(lái)的大量模塊。但是不知道什么原因在國(guó)內(nèi)好像很少有人用。關(guān)于perl的歷史我就不多說(shuō)了,有興趣可以上網(wǎng)查一下。有一點(diǎn)要說(shuō)的是,目前perl最新的版本是5.8.6,而perl6雖然已經(jīng)設(shè)計(jì)很久了但是由于自舉問(wèn)題目前還沒(méi)有一個(gè)可用的版本。為了解決這個(gè)問(wèn)題,臺(tái)灣的唐宗漢發(fā)起的pugs項(xiàng)目正在快速的實(shí)施中,可能很快就能有結(jié)果了,有興趣的朋友可以多多關(guān)注一下,也許還可以為開(kāi)源世界做點(diǎn)貢獻(xiàn)。

  雖然很早以前就了解過(guò)perl,但是從來(lái)就沒(méi)有實(shí)際的用它做過(guò)項(xiàng)目,因此這次的實(shí)現(xiàn)是一個(gè)邊學(xué)邊做的過(guò)程。作為一個(gè)程序員,學(xué)習(xí)一種新的語(yǔ)言總會(huì)有一點(diǎn)慣性思維,加之perl在語(yǔ)法上與c語(yǔ)言比較類似。因此我想在這片文章中主要以c為背景做一個(gè)比較。這種比較不是比較語(yǔ)言上的優(yōu)劣,而是說(shuō)明同樣的功能如何在perl中實(shí)現(xiàn)以及之間的區(qū)別。限于篇幅,具體的技術(shù)實(shí)現(xiàn)的細(xì)節(jié)我就不在這里多說(shuō)了,你可以在末尾的資源一節(jié)中找到很多相關(guān)的文章。如果你沒(méi)有接觸過(guò)perl,我想你可能更希望看到學(xué)習(xí)perl的過(guò)程中可能會(huì)遇到的一些問(wèn)題以及解決方法。

工欲善其事,必先利其器

  要寫代碼,首先至少得有一個(gè)編輯器。perl是跨平臺(tái)的一種解釋型語(yǔ)言,可以在unix/linux/windows/mac等平臺(tái)上運(yùn)行。具體對(duì)應(yīng)平臺(tái)上的編輯器,最簡(jiǎn)單的方案是unix下用vi,windows下用ultraedit。當(dāng)然也有商業(yè)化的ide,不過(guò)我嘗試了一下發(fā)現(xiàn)并不是那么的好用,因此我在windows平臺(tái)上以u(píng)ltraedit作為編輯環(huán)境,完成后移植到solaris平臺(tái)上。

  關(guān)于環(huán)境的搭建,有這樣幾個(gè)需要注意的地方:

  1、 windows平臺(tái)下對(duì)應(yīng)的是activeperl,可以免費(fèi)下載。

  2、 去ue的網(wǎng)站上下載perl的autocomp文件,可以實(shí)現(xiàn)自動(dòng)完成功能。

  3、 下載perl對(duì)應(yīng)的語(yǔ)法加亮的tag文件并加入到ue中,可以更塊的發(fā)現(xiàn)拼寫錯(cuò)誤。

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

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

  巧婦難為無(wú)米之炊

 

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

  看看我們現(xiàn)在都有什么:一個(gè)編輯器,一個(gè)perl的開(kāi)發(fā)環(huán)境,還有一個(gè)聰明的腦袋。這個(gè)任務(wù)中,我要處理命令行參數(shù)、訪問(wèn)mysql數(shù)據(jù)庫(kù)(sql)、讀寫xml的配置文件以及輸出一個(gè)固定格式的報(bào)表文件。

  好了,去查查資料,看看訪問(wèn)數(shù)據(jù)庫(kù)和讀寫xml都需要什么東西。正如同c語(yǔ)言本身帶了很多標(biāo)準(zhǔn)函數(shù)庫(kù)一樣,perl本身也有函數(shù)庫(kù),并把這些函數(shù)庫(kù)稱為module(模塊)。查了一下資料,發(fā)現(xiàn)要訪問(wèn)mysql數(shù)據(jù)庫(kù)需要dbi和dbd::mysql兩個(gè)模塊,那么去哪里找這些模塊呢。這里給大家介紹一個(gè)perl的module集散地 www.cpan.org,這里包含了八千多個(gè)module,可以從這里下載到幾乎各種各樣的module??梢允止は螺d后安裝,也可以使用工具來(lái)自動(dòng)安裝。在windows下是可以使用ppm進(jìn)行自動(dòng)安裝,例如dbd的安裝過(guò)程如下:

  c:/>ppm

  …

  ppm> search dbi

  searching in active repositories

  … 一大堆與dbi相關(guān)的包的列表,其中就包括dbi這個(gè)包

  ppm>install dbi

  …

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

  …

  ppm>quit

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

  perl –mcpan –e shell

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


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

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

  芝麻開(kāi)門

 

  說(shuō)起編程語(yǔ)言,簡(jiǎn)單的來(lái)說(shuō)無(wú)非就是這樣幾個(gè)必不可少的基本元素:變量、數(shù)據(jù)、表達(dá)式、流程控制語(yǔ)句(包括條件、分支、循環(huán))、函數(shù)、對(duì)象。具體到語(yǔ)言上,大部分的內(nèi)容只是表達(dá)的形式不同而已。而perl與c又有什么區(qū)別呢?

  首先要知道,perl是一種腳本語(yǔ)言。所謂的腳本,就是沒(méi)有主函數(shù),從最開(kāi)始一行一行的按照順序解釋執(zhí)行(老版basic不也是如此嗎)。因此,盡管把你的思路轉(zhuǎn)化為流程用perl表達(dá)出來(lái)吧。

  其次,perl的設(shè)計(jì)中參考了很多語(yǔ)言的長(zhǎng)處,并避免了設(shè)計(jì)上的缺陷。因此perl的很多語(yǔ)法你可能都會(huì)覺(jué)得似曾相識(shí)。我把perl的語(yǔ)法總結(jié)了一下,和c語(yǔ)言做了一個(gè)簡(jiǎn)單的對(duì)比表格。表格左右兩邊的語(yǔ)句是c和perl對(duì)應(yīng)表達(dá)同一個(gè)功能各自的不同方式。如果讀者有c語(yǔ)言的經(jīng)驗(yàn),相信看到這個(gè)對(duì)比可以很快的上手吧?

語(yǔ)法元素

cperl

perl語(yǔ)法說(shuō)明

注釋

/* … */

# …

只支持單行注釋

變量

int a, b, c;

char c=’a’;

int x[10];

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

my $c='a';

my @x;

my %h;

聲明使用my標(biāo)示

表示值的變量以$開(kāi)頭,表示數(shù)組的變量以@開(kāi)頭,表示哈希表的變量以%開(kāi)頭。

聲明可以省略(不建議)

字符串

char* h1=”hello/n”;

char* h2=”hello//n”;

$h1=”hello/n”;

$h2=’hello/n’;

雙引號(hào)解釋內(nèi)部的/n,而單引號(hào)則不解釋

一維數(shù)組

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);

數(shù)組聲明以@標(biāo)示

動(dòng)態(tài)數(shù)組,不需要指定大小

數(shù)組下標(biāo)從0開(kāi)始

訪問(wèn)數(shù)組元素值的時(shí)候,要以$開(kāi)頭表示訪問(wèn)的是數(shù)值

[3..5]表示數(shù)組中下標(biāo)為35之間的元素組成的數(shù)組

數(shù)組之間可以直接賦值

多維數(shù)組

int arr[10][10];

arr[0][1]=9;

my @arr;

$arr[0][1]=9;

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

指針

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;

&表示調(diào)用函數(shù)

*取函數(shù)的代碼地址

不必用括號(hào)把參數(shù)括起來(lái)

調(diào)用時(shí)的括號(hào)也是可選的

條件語(yǔ)句

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 結(jié)構(gòu)可以反轉(zhuǎn),意義不變,注意前句沒(méi)有分號(hào)。

顧名思義, unless是“除非”的意思。這里的四個(gè)表達(dá)方式是等價(jià)的。注意第一種方式中,條件部分的圓括號(hào)和語(yǔ)句部分的花括號(hào)是不可省略的。

循環(huán)語(yǔ)句

foreach (@arry)

foreach my $key(@ary)

foreach $count (1..10)

for/while的語(yǔ)法都和c類似。

foreach關(guān)鍵字也可以用for,意義不變。

函數(shù)

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)

注意下劃線”_”也是一個(gè)合法的變量名。而@_perl內(nèi)置的一個(gè)數(shù)組,內(nèi)容為函數(shù)的參數(shù)。

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

($x,$y)[email protected]_;則表示兩個(gè)數(shù)組之間的復(fù)制,@_中對(duì)應(yīng)的元素的值就賦值給了$x$y.這是一個(gè)簡(jiǎn)便的寫法,也可以這樣寫

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

return是可選的,默認(rèn)返回最后一個(gè)表達(dá)式的值

語(yǔ)法約束

1.       編譯時(shí)打開(kāi)編譯器所有的警告選項(xiàng)

2.       使用lint工具

 

3.       perl –w myprogram.pl 打開(kāi)運(yùn)行警告開(kāi)關(guān),如果運(yùn)行時(shí)perl檢查到了可能的錯(cuò)誤,會(huì)顯示警告信息,否則它默認(rèn)是什么也不提示繼續(xù)執(zhí)行。

4.       #!/usr/bin/perl –w 在代碼文件第一行中加入-w選項(xiàng)開(kāi)關(guān)

5.       use strict; 使用嚴(yán)格語(yǔ)法約束

運(yùn)行

編譯后直接執(zhí)行

 

1.       perl myprogram.pl 手工執(zhí)行

2.       #!/usr/bin/perl

unix下在代碼第一行加入,然后給文件加上可執(zhí)行的屬性 chmod +x myprogram.pl,之后就可以用./myprogram.pl命令來(lái)運(yùn)行。

3.       windows下,安裝activeperl的時(shí)候,已經(jīng)將.pl后綴的文件和perl的解釋程序關(guān)聯(lián)起來(lái)了,因此直接雙擊文件圖標(biāo)就可以運(yùn)行。


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

  從框架開(kāi)始
  perl有很多表達(dá)方式,我們可以選擇一種自己熟悉、容易理解的方式來(lái)寫perl的程序。例如,你是一個(gè)經(jīng)驗(yàn)豐富的c程序員,那么你可以選擇以c的風(fēng)格來(lái)寫perl程序。下面是一個(gè)小小的樣板框架

 

#!/usr/bin/perl -w

use strict;


# 程序開(kāi)始的第一行語(yǔ)句,調(diào)用main函數(shù)

main();


# 定義main函數(shù)

sub main

{



}


  在這個(gè)框架下面,你幾乎可以容易就開(kāi)始你的perl開(kāi)發(fā)了。如果需要處理命令行參數(shù),就可以稍微的擴(kuò)展一下這個(gè)框架。

#!/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;



}


  實(shí)際上,剩余的工作和以往的工作差不多了,編寫一個(gè)一個(gè)的函數(shù),并實(shí)現(xiàn)你的業(yè)務(wù)邏輯。對(duì)于你這樣一個(gè)聰明的程序員來(lái)說(shuō),學(xué)會(huì)perl是一個(gè)很容易的事情。

  常見(jiàn)問(wèn)題
  以我的學(xué)習(xí)經(jīng)驗(yàn)來(lái)看,在開(kāi)發(fā)的過(guò)程中可能有一些常用但是很分散的細(xì)節(jié)問(wèn)題會(huì)讓你感到困惑。

  1、 程序的入口參數(shù)怎么?。?br />
  內(nèi)置數(shù)組@argv包含了所有的運(yùn)行參數(shù)??梢源蛴〕鰜?lái)看看 print @argv;

  2、 函數(shù)如何傳參數(shù)、取參數(shù)?

  每個(gè)函數(shù)內(nèi)部都有一個(gè)內(nèi)置的數(shù)組 @_ ,這個(gè)數(shù)組的元素就是函數(shù)的參數(shù)。例如傳入的第一個(gè)參數(shù)就是$_[0],第二個(gè)是$_[1]。唔,如你所見(jiàn),perl的函數(shù)參數(shù)就是c中的動(dòng)態(tài)參數(shù)。

  3、 默認(rèn)變量是什么

  這個(gè)可能會(huì)把你的頭搞暈。有一個(gè)內(nèi)置變量 $_ ,

  4、 顯示消息、退出常見(jiàn)的簡(jiǎn)單寫法

  die ‘error on program’;


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

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


  5、 格式化輸出

  可以用簡(jiǎn)單的print語(yǔ)句進(jìn)行一般的輸出操作,如果需要復(fù)雜的格式化輸出,可以使用printf語(yǔ)句……跟c的用法幾乎是一樣的。

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


  6、 =>是什么東西?

  在使用hash表的時(shí)候,可以經(jīng)常看到=>這個(gè)符號(hào)。例如這樣的一個(gè)定義:

  my $account={

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

  'jesse'=> '[email protected]'

  };


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

  7、 關(guān)于引用的一點(diǎn)說(shuō)明

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

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

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

  編寫系統(tǒng)管理的腳本

  和apache結(jié)合起來(lái),編寫cgi程序

  編寫動(dòng)態(tài)網(wǎng)頁(yè)

  使用net命名空間下的類編寫網(wǎng)絡(luò)應(yīng)用程序

  使用authen::captcha模塊實(shí)現(xiàn)提交時(shí)的驗(yàn)證碼的功能

  使用storable模塊處理perl的各種數(shù)據(jù)結(jié)構(gòu)

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

  等等…

資源
  www.perl.org perl的官方站點(diǎn)

  www.perl.com o’reily 維護(hù)的關(guān)于perl的站點(diǎn)

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

  www.perlchina.com 中國(guó)perl協(xié)會(huì)

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

  www.perlmonks.org 用perl寫詩(shī) j

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
成年人视频免费看| 成人在线观看一区二区| 久久亚洲精品石原莉奈| 国产精品va在线观看视色| 久久黄色小视频| 九九精品在线| 亚洲国产精品免费视频| 91影院在线播放| 蜜臀av在线播放一区二区三区| 欧美一区二区三区成人精品| 毛片网站在线看| 欧美成人黄色网址| 欧美aa在线视频| 国产精品社区| 在线观看黄色av| 精品少妇3p| 欧美日韩国产页| 91精品亚洲| 精品成人一区二区三区| 国产网友自拍电影在线| 精品国精品国产自在久国产应用| 成人精品一区二区三区四区| 国内av免费观看| 欧美精品97| 激情中文字幕| 福利片在线免费观看| 日本天堂免费a| 日韩大片在线播放| 欧美午夜春性猛交xxxx| 精品欧美日韩在线| 国产精品中文字幕久久久| 四虎884aa成人精品| 日韩在线电影| 国产白丝袜美女久久久久| 亚洲国产美女精品久久久久∴| 午夜精品蜜臀一区二区三区免费| 国产精品区二区三区日本| 麻豆免费在线观看| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美日韩在线观看一区二区| 成人在线免费公开观看视频| www.操操操.com| 亚洲区综合中文字幕日日| 国产精品制服诱惑| 国产精品jizz在线观看麻豆| 久久精品人人做| 在线观看的毛片| 久久超碰97人人做人人爱| 高清av在线| 亚洲国产欧美另类| 欧美调教视频| 精品一区二区三区免费观看| 日韩欧美在线中文字幕| 日韩免费一区| 国产精品77777竹菊影视小说| 伊人色综合久久| 成人美女在线观看| 91免费网站视频| 992tv成人免费视频| 国产美女主播视频一区| 精品网站在线看| 日韩国产高清一区| 你懂的免费在线观看视频网站| 成人免费一区二区三区牛牛| 日本久久黄色| 国产无遮挡又黄又爽又色| 国产又粗又黄又爽| 成人18免费入口| 国产欧美一区二区三区久久| 91麻豆精品国产自产在线观看一区| 亚洲国产精品免费| 久久精品ww人人做人人爽| 刘亦菲一区二区三区免费看| 中文字幕在线不卡视频| 免费看黄色一级大片| 来吧亚洲综合网| 澳门精品久久国产| 中文字幕亚洲专区| 人人玩人人添人人澡欧美| 在线视频中文亚洲| 欧美日韩午夜视频在线观看| 亚洲一区在线免费观看| xvideos亚洲人网站| 亚洲午夜久久久影院伊人| 国产精品99久久久久久董美香| 欧美一级生活片| 国产欧美一区二区三区视频| 亚洲香蕉视频| 成人高清视频免费观看| 久久99热在线观看7| 国产在线三区| www.com毛片| 精产国品自在线www| 欧美激情 国产精品| 手机电影在线观看| 国产欧美日韩精品一区| 不卡一卡2卡3卡4卡精品在| ady日本映画久久精品一区二区| 国产中文在线| 国产亚洲欧洲在线| 久久蜜桃av一区精品变态类天堂| 欧美精品一区男女天堂| 爱情电影网av一区二区| 国产亚洲精品美女久久久久| 亚洲一区二区三区免费看| 人人妻人人澡人人爽人人精品| 亚洲无码精品一区二区三区| 99九九精品视频| aaaaa一级片| 五月综合激情网| 韩国v欧美v日本v亚洲| 93久久精品日日躁夜夜躁欧美| 欧美一区二区精品在线| 欧美日韩人人澡狠狠躁视频| 欧美一区二区三区久久| 亚洲片国产一区一级在线观看| 精品久久在线| 国产精品高潮视频| 欧美成人免费视频a| 最新中文字幕一区二区三区| h视频在线观看网站| 337p亚洲精品色噜噜| 日本美女一区二区| 九九九久久久久久久| 女人18毛片毛片毛片毛片区二| 欧美美女在线| 北条麻妃在线观看| 激情一区二区三区| 日本 欧美 国产| 免费看岛国视频在线观看| 日韩中文影院| 色妞www精品视频| 6080午夜伦理| 久久人人爽人人爽人人| 麻豆免费在线视频| 国产乱国产乱老熟300| 精品视频色一区| 国产伦精一区二区三区| 国产一级黄色录像| 夜夜操 天天摸| 欧美成人性战久久| 在线观看亚洲电影| 国产精品午夜久久| 亚洲中文字幕无码av| 亚洲美女www午夜| 一区二区三区中文| 精品国产乱码久久久久久丨区2区| 亚洲综合色激情五月| 亚洲av人人澡人人爽人人夜夜| 亚洲欧美在线一区二区| www.午夜色大片| 五月激情婷婷网| 精品美女久久久久久免费| 日韩在线视频网| 亚洲美女av电影| 国产日产欧美视频| 日韩精品在线看片z| 亚洲精华国产精华精华液网站| 欧美亚洲一区二区三区四区| 波多野结衣一区二区三区四区| 91啪九色porn原创视频在线观看| 成年男人的天堂| 国产精品视频一区二区在线观看| 国产精品爽爽爽爽爽爽在线观看| 久久国产精品99精品国产| 色噜噜狠狠狠综合曰曰曰| 韩国v欧美v亚洲v日本v| 欧美午夜在线视频| 日韩av免费大片| 搡女人真爽免费午夜网站| 91中文字幕一区| 自拍视频在线免费观看| 4438全国成人免费| 欧美亚洲一级| 色欧美在线观看| 欧美日韩中字一区| 污视频在线观看免费网站| 91pron在线| 一区二区视频网站| 麻豆mv在线观看| 亚洲经典中文字幕| 美女视频黄免费的久久| 欧美丰满美乳xxⅹ高潮www| 九九视频免费观看| 飘雪影视在线观看免费观看| 98在线视频| 日本一区二区动态图| 国产精品久久久久一区二区国产| 亚洲成人自拍偷拍| 成人激情视频网| 国产精品成人免费电影| 毛片在线播放网站| 五月天丁香婷| 麻豆成人久久精品二区三区红| 911国产在线| 久久亚洲精品一区| 在线成人h网| 久久一区二区电影| 欧美aaaaa性bbbbb小妇| 性娇小13――14欧美| 欧美精品在线免费| 国产中文字幕久久| 亚洲黄色小说网| 日韩精品一区二区三区中文字幕| 国产精品视频久| 国产乱码精品一区二区三区中文| 日韩精品一区不卡| 亚洲国产精品日韩| 正在播放精油久久| 国产三区在线成人av| 粉嫩精品一区二区三区在线观看| 一区二区三区精品在线| 国产乱子伦精品无码码专区| www.就去干.com| 久草在线在线视频| 日本中文字幕免费在线观看| 毛片一区二区三区四区| 欧美日本黄色片| 国产一区二区三区毛片| 波兰性xxxxx极品hd| 国产一区二区三区影视| 成年网址网站在线观看| 日本不卡一区二区三区在线观看| 在线日韩一区| а√天堂www在线а√天堂视频| 日韩一区二区三区在线视频| 在线观看欧美黄色| 青青青青久久精品国产一百度| 亚洲电影中文字幕| 欧美国产另类| 少妇太紧太爽又黄又硬又爽小说| 久久亚洲精品伦理| 国产福利91精品一区| 久久亚洲精品欧美| 久久久9色精品国产一区二区三区| 亚洲精品在线电影| 日韩成人毛片视频| 亚洲人成网站在线播放2019| 天天操综合网| 国产精品久久久久久久久久ktv| 搡的我好爽在线观看免费视频| jizz18欧美| 日本高清不卡免费| 中文字幕在线视频免费| 91精品一区二区三区在线观看| 蜜乳av一区二区三区| 欧美xxxx性xxxxx高清| 成人福利一区| caoporm在线视频| 欧美a级片免费看| 无码视频一区二区三区| videoxxxx另类日本极品| 中文字幕乱码无码人妻系列蜜桃| 亚州av综合色区无码一区| 日韩精品成人免费观看视频| 无码精品人妻一区二区三区影院| 亚洲同性gay激情无套| 亚洲aⅴ怡春院| 日本黄视频网站| 伊人久久大香伊蕉在人线观看热v| 国产91白丝在线播放| 精品国产免费久久久久久婷婷| 黄色av免费网站| 久久久久久网站| 亚洲国产另类久久精品| 国产成人免费观看| 亚洲国产欧美国产综合一区| 国产有码在线一区二区视频| 欧美日韩第二页| 最新国产在线观看| 精品三级久久| 日韩a在线看| 亚洲一区二区精品在线观看| 日日夜夜精品视频免费观看| 欧美激情一区二区| 欧美成人精品高清在线播放| av在线影视| 国产高潮在线观看| 亚洲欧美日韩中文视频| 中文字幕欧美一区二区| 欧美日韩亚洲国产成人| 国产精品sss| 欧美精品久久久久久久免费| 18加网站在线| 色综合中文综合网| 啊v视频在线一区二区三区| 亚洲va韩国va欧美va精品| 国产精品成人国产乱一区| 久久免费看毛片| 欧美精品情趣视频| 999国产在线视频| 亚洲韩国青草视频| 黄色网址免费在线观看| 国产96在线亚洲| 亚洲v国产v欧美v久久久久久| 国产精品一国产精品k频道56| 日韩精品一二| 久久久久国产精品免费免费搜索| 欧美三级在线观看视频| 国产福利在线视频| 欧美午夜三级| 日韩精品五月天| 成人自拍偷拍| 福利电影一区| 国产精品麻豆视频| 天天影视网天天综合色在线播放| 96精品视频在线| 中文字幕高清视频| 综合精品一区| 国产精品素人一区二区| 性一交一黄一片| 欧美午夜精品一区二区蜜桃| 成人高清免费观看mv| 日韩欧美国产wwwww| 成人av男人的天堂| 精品国产欧美日韩| 成人免费在线电影网| 久久精品国产亚洲av麻豆色欲| 无码人妻一区二区三区在线| 国产综合精品久久| 国产精品自拍偷拍视频| 久热中文字幕在线精品免费| 美女网站视频久久| 欧美最猛性xxxxxhd| 日本午夜大片a在线观看| 欧美日韩福利视频| 欧美色婷婷久久99精品红桃| 日韩一区二区精品视频|