亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ch5.htm

?? prrl 5 programs codes in the book
?? HTM
?? 第 1 頁 / 共 4 頁
字號:
and </I><TT><I>@array</I></TT><I>.

<BR>

Print </I><TT><I>@array</I></TT><I>

and </I><TT><I>$firstVar</I></TT><I>.</I>

</BLOCKQUOTE>

<BLOCKQUOTE>

<PRE>

firstSub(&quot;AAAA&quot;, (0..10));



sub firstSub{

    local($firstVar, @array) = @_ ;



    print(&quot;firstSub: array    = @array\n&quot;);

    print(&quot;firstSub: firstVar = $firstVar\n&quot;);

}

</PRE>

</BLOCKQUOTE>

<P>

This program prints:

<BLOCKQUOTE>

<PRE>

firstSub: array    = 0 1 2 3 4 5 6 7 8 9 10

firstSub: firstVar = AAAA<BR>



</PRE>

</BLOCKQUOTE>

<p>

<CENTER>

<TABLE BORDERCOLOR=#000000 BORDER=1 WIDTH=80%>

<TR><TD><B>Note</B></TD></TR>

<TR><TD>

<BLOCKQUOTE>

You can pass as many scalar values as you want to a fuNCtion, but only one array. If you try to pass more than one array, the array elements become joined together and passed as one array to the fuNCtion. Your fuNCtion won't be able to tell when one array 
starts and another ends.</BLOCKQUOTE>



</TD></TR>

</TABLE>

</CENTER>

<P>

<H3><A NAME="ExampleNestingFuNCtionCalls">

Example: Nesting FuNCtion Calls</A></H3>

<P>

FuNCtion calls can be nested many levels deep. Nested fuNCtion

calls simply means that one fuNCtion can call another which in

turn can call another. Exactly how many levels you can nest depends

on which version of Perl you are running and how your machine

is configured. Normally, you don't have to worry about it. If

you want to see how many levels your system can recurse, try the

following small program:

<P>

<IMG SRC="pseudo.gif" tppabs="http://cheminf.nankai.edu.cn/~eb~/Perl%205%20By%20Example/pseudo.gif" BORDER=1 ALIGN=RIGHT><p>

<BLOCKQUOTE>

<I>Call the </I><TT><I>firstSub()</I></TT><I>

fuNCtion.<BR>

Define the </I><TT><I>firstSub()</I></TT><I>

fuNCtion.<BR>

Print </I><TT><I>$count<BR>

</I></TT><I>INCrement </I><TT><I>$count</I></TT><I>

by one.<BR>

Call the </I><TT><I>firstSub()</I></TT><I>

fuNCtion recursively.</I>

</BLOCKQUOTE>

<BLOCKQUOTE>

<PRE>

firstSub();



sub firstSub{

    print(&quot;$count\n&quot;);

    $count++;

    firstSub();

}

</PRE>

</BLOCKQUOTE>

<P>

My system counts up to 127 before displaying the following message:

<BLOCKQUOTE>

<PRE>

Error: Runtime exception

</PRE>

</BLOCKQUOTE>

<P>

While it is important to realize that there is a limit to the

number of times your program can nest fuNCtions, you should never

run into this limitation unless you are working with recursive

mathematical fuNCtions.

<H3><A NAME="ExampleUsingaPrivateFuNCtion">

Example: Using a Private FuNCtion</A></H3>

<P>

Occasionally, you might want to create a private fuNCtion. A private

fuNCtion is one that is only available inside the scope where

it was defined.

<P>

<IMG SRC="pseudo.gif" tppabs="http://cheminf.nankai.edu.cn/~eb~/Perl%205%20By%20Example/pseudo.gif" BORDER=1 ALIGN=RIGHT><p>

<BLOCKQUOTE>

<I>Assign the return value from </I><TT><I>performCalc()</I></TT><I>

to </I><TT><I>$temp</I></TT><I>.<BR>

Print </I><TT><I>$temp</I></TT><I>.

<BR>

Define the </I><TT><I>performCalc()</I></TT><I>

fuNCtion.<BR>

Assign my scalar variables values from the </I><TT><I>@_</I></TT><I>

parameter array.<BR>

Define the private fuNCtion referred to by </I><TT><I>$square</I></TT><I>.

<BR>

Return the first element of the </I><TT><I>@_</I></TT><I>

parameter array raised to the 2nd power.<BR>

Return the value of </I><TT><I>$firstVar</I></TT><I>

raised to the 2nd power and<BR>

</I><TT><I>$secondVar</I></TT><I>

raised to the 2nd power.</I>

</BLOCKQUOTE>

<BLOCKQUOTE>

<PRE>

$temp = performCalc(10, 10);

print(&quot;temp = $temp\n&quot;);



sub performCalc {

    my ($firstVar, $secondVar) = @_;



    my $square = sub {

        return($_[0] ** 2);

    };



    return(&amp;$square($firstVar) + &amp;$square($secondVar));

};

</PRE>

</BLOCKQUOTE>

<P>

This program prints:

<BLOCKQUOTE>

<PRE>

temp = 200

</PRE>

</BLOCKQUOTE>

<P>

This example is rather trivial, but it serves to show that in

Perl it pays to create little helper routines. A fine line needs

to be drawn between what should be iNCluded as a private fuNCtion

and what shouldn't. I would draw the line at 5 or 6 lines of code.

Anything longer probably should be made into its own fuNCtion.

I would also say that a private fuNCtion should have only one

purpose for existeNCe. Performing a calculation and then opening

a file is too much fuNCtionality for a single private fuNCtion

to have.

<P>

The rest of the chapter is devoted to showing you some of the

built-in fuNCtions of Perl. These little nuggets of fuNCtionality

will become part of your arsenal of programming weapons.

<H2><A NAME="StringFuNCtions"><FONT SIZE=5 COLOR=#FF0000>

String FuNCtions</FONT></A></H2>

<P>

The first set of fuNCtions that we'll look at are those that deal

with strings. These fuNCtions let you determine a string's length,

search for a sub-string, and change the case of the characters

in the string, among other things. Table 5.1 shows Perl's string

fuNCtions.<BR>

<P>

<CENTER><B>Table 5.1&nbsp;&nbsp;String FuNCtions</B></CENTER>

<p>

<CENTER>

<TABLE BORDERCOLOR=#000000 BORDER=1 WIDTH=80%>

<TR><TD WIDTH=211><I>FuNCtion</I></TD><TD WIDTH=379><I>Description</I>

</TD></TR>

<TR><TD WIDTH=211><TT>chomp(STRING) OR chomp(ARRAY)</TT>

</TD><TD WIDTH=379>Uses the value of the <TT>$/</TT> special variable to remove endings from <TT>STRING</TT> or each element of <TT>ARRAY</TT>. The line ending is only removed if it matches the current value of <TT>$/</TT>.

</TD></TR>

<TR><TD WIDTH=211><TT>chop(STRING) OR chop(ARRAY)</TT>

</TD><TD WIDTH=379>Removes the last character from a string or the last character from every element in an array. The last character chopped is returned.

</TD></TR>

<TR><TD WIDTH=211><TT>chr(NUMBER)</TT>

</TD><TD WIDTH=379>Returns the character represented by <TT>NUMBER</TT> in the ASCII table. For instaNCe, <TT>chr(65)</TT> returns the letter <TT>A</TT>. For more information about the ASCII table see Appendix E, &quot;ASCII Table.&quot;

</TD></TR>

<TR><TD WIDTH=211><TT>crypt(STRING1, STRING2)</TT>

</TD><TD WIDTH=379>ENCrypts <TT>STRING1</TT>. Unfortunately, Perl does not provide a decrypt fuNCtion. 

</TD></TR>

<TR><TD WIDTH=211><TT>index(STRING, SUBSTRING, POSITION)</TT>

</TD><TD WIDTH=379>Returns the position of the first occurreNCe of <TT>SUBSTRING</TT> in <TT>STRING</TT> at or after <TT>POSITION</TT>. If you don't specify <TT>POSITION</TT>, the search starts at the beginning of <TT>STRING</TT>.

</TD></TR>

<TR><TD WIDTH=211><TT>join(STRING, ARRAY)</TT>

</TD><TD WIDTH=379>Returns a string that consists of all of the elements of <TT>ARRAY</TT> joined together by <TT>STRING</TT>. For instaNCe, <TT>join(&quot;&gt;&gt;&quot;, (&quot;AA&quot;, &quot;BB&quot;, &quot;cc&quot;))</TT> returns 
<TT>&quot;AA&gt;&gt;BB&gt;&gt;cc&quot;</TT>.

</TD></TR>

<TR><TD WIDTH=211><TT>lc(STRING)</TT>

</TD><TD WIDTH=379>Returns a string with every letter of <TT>STRING</TT> in lowercase. For instaNCe, <TT>lc(&quot;ABCD&quot;)</TT> returns <TT>&quot;abcd&quot;</TT>.

</TD></TR>

<TR><TD WIDTH=211><TT>lcfirst(STRING)</TT>

</TD><TD WIDTH=379>Returns a string with the first letter of <TT>STRING</TT> in lowercase. For instaNCe, <TT>lcfirst(&quot;ABCD&quot;)</TT> returns <TT>&quot;aBCD&quot;</TT>.

</TD></TR>

<TR><TD WIDTH=211><TT>length(STRING)</TT>

</TD><TD WIDTH=379>Returns the length of <TT>STRING</TT>.

</TD></TR>

<TR><TD WIDTH=211><TT>rindex(STRING, SUBSTRING, POSITION)</TT>

</TD><TD WIDTH=379>Returns the position of the last occurreNCe of <TT>SUBSTRING</TT> in <TT>STRING</TT> at or after <TT>POSITION</TT>. If you don't specify <TT>POSITION</TT>, the search starts at the end of <TT>STRING</TT>.

</TD></TR>

<TR><TD WIDTH=211><TT>split(PATTERN, STRING, LIMIT)</TT>

</TD><TD WIDTH=379>Breaks up a string based on some delimiter. In an array context, it returns a list of the things that were found. In a scalar context, it returns the number of things found.

</TD></TR>

<TR><TD WIDTH=211><TT>substr(STRING, OFFSET, LENGTH)</TT>

</TD><TD WIDTH=379>Returns a portion of <TT>STRING</TT> as determined by the <TT>OFFSET</TT> and <TT>LENGTH</TT> parameters. If <TT>LENGTH</TT> is not specified, then everything from <TT>OFFSET</TT> to the end of <TT>STRING</TT> is returned. A negative 
<TT>OFFSET</TT> can be used to start from the right side of <TT>STRING</TT>.

</TD></TR>

<TR><TD WIDTH=211><TT>uc(STRING)</TT>

</TD><TD WIDTH=379>Returns a string with every letter of <TT>STRING</TT> in uppercase. For instaNCe, <TT>uc(&quot;abcd&quot;)</TT> returns <TT>&quot;ABCD&quot;</TT>.

</TD></TR>

<TR><TD WIDTH=211><TT>Ucfirst(STRING)</TT>

</TD><TD WIDTH=379>Returns a string with the first letter of <TT>STRING</TT> in uppercase. For instaNCe, <TT>ucfirst(&quot;abcd&quot;)</TT> returns <TT>&quot;Abcd&quot;</TT>.

</TD></TR>

</TABLE>

</CENTER>

<P>

<p>

<CENTER>

<TABLE BORDERCOLOR=#000000 BORDER=1 WIDTH=80%>

<TR><TD><B>Note</B></TD></TR>

<TR><TD>

<BLOCKQUOTE>

As a general rule, if Perl sees a number where it expects a string, the number is quietly converted to a string without your needing to do anything.</BLOCKQUOTE>



</TD></TR>

</TABLE>

</CENTER>

<P>

<p>

<CENTER>

<TABLE BORDERCOLOR=#000000 BORDER=1 WIDTH=80%>

<TR><TD><B>Note</B></TD></TR>

<TR><TD>

<BLOCKQUOTE>

Some of these fuNCtions use the special variable <TT>$_ </TT>as the default string to work with. More information about <TT>$_ </TT>can be found in <A HREF="ch9.htm" tppabs="http://cheminf.nankai.edu.cn/~eb~/Perl%205%20By%20Example/ch9.htm" >Chapter 9</A> &quot;Using Files,&quot; and <A HREF="ch12.htm" tppabs="http://cheminf.nankai.edu.cn/~eb~/Perl%205%20By%20Example/ch12.htm" >Chapter 12</A>, 
&quot;Using Special Variables.&quot;

</BLOCKQUOTE>



</TD></TR>

</TABLE>

</CENTER>

<P>

<P>

The next few sections demonstrate some of these fuNCtions. After

seeing some of them work, you'll be able to use the rest of them.

<H3><A NAME="ExampleChangingaStringsValue">

Example: Changing a String's Value</A></H3>

<P>

Frequently, I find that I need to change part of a string's value,

usually somewhere in the middle of the string. When this need

arises, I turn to the <TT>substr()</TT>

fuNCtion. Normally, the <TT>substr()</TT>

fuNCtion returns a sub-string based on three parameters: the string

to use, the position to start at, and the length of the string

to return.

<P>

<IMG SRC="pseudo.gif" tppabs="http://cheminf.nankai.edu.cn/~eb~/Perl%205%20By%20Example/pseudo.gif" BORDER=1 ALIGN=RIGHT><p>

<BLOCKQUOTE>

<I>Assign </I><TT><I>$firstVar</I></TT><I>

the return value from substr().<BR>

Print </I><TT><I>$firstVar</I></TT><I>.</I>

</BLOCKQUOTE>

<BLOCKQUOTE>

<PRE>

$firstVar = substr(&quot;0123BBB789&quot;, 4, 3);

print(&quot;firstVar  = $firstVar\n&quot;);

</PRE>

</BLOCKQUOTE>

<P>

This program prints:

<BLOCKQUOTE>

<PRE>

firstVar = BBB

</PRE>

</BLOCKQUOTE>

<P>

The <TT>substr()</TT> fuNCtion starts

at the fifth position and returns the next three characters. The

returned string can be printed like in the above example, as an

array element, for string coNCatention, or any of a hundred other

options.

<P>

Things become more interesting when you put the <TT>substr()</TT>

fuNCtion on the left-hand side of the assignment statement. Then,

you actually can assign a value to the string that <TT>substr()</TT>

returns.

<P>

<IMG SRC="pseudo.gif" tppabs="http://cheminf.nankai.edu.cn/~eb~/Perl%205%20By%20Example/pseudo.gif" BORDER=1 ALIGN=RIGHT><p>

<BLOCKQUOTE>

<I>Initialize </I><TT><I>$firstVar</I></TT><I>

with a string literal.<BR>

Replace the string returned by the </I><TT><I>substr()</I></TT><I>

fuNCtion with &quot;AAA&quot;.<BR>

Print </I><TT><I>$firstVar</I></TT><I>.</I>

</BLOCKQUOTE>

<BLOCKQUOTE>

<PRE>

$firstVar = &quot;0123BBB789&quot;;

substr($firstVar, 4, 3) = &quot;AAA&quot;;

print(&quot;firstVar  = $firstVar\n&quot;);

</PRE>

</BLOCKQUOTE>

<P>

This program prints:

<BLOCKQUOTE>

<PRE>

firstVar = 0123AAA789

</PRE>

</BLOCKQUOTE>

<H3><A NAME="ExampleSearchingaString">

Example: Searching a String</A></H3>

<P>

Another useful thing you can do with strings is search them to

see if they have a given sub-string. For example if you have a

full path name such as <TT>&quot;C:\\WINDOWS

\\TEMP\\WSREWE.DAT&quot;</TT>, you might need to extract

the file name at the end of the path. You might do this by searching

for the last backslash and then using <TT>substr()</TT>

to return the sub-string.<BR>

<p>

<CENTER>

<TABLE BORDERCOLOR=#000000 BORDER=1 WIDTH=80%>

<TR><TD><B>Note</B></TD></TR>

<TR><TD>

<BLOCKQUOTE>

The path name string has double backslashes to indicate to Perl that we really want a backslash in the string and not some other escape sequeNCe. You can read more about escape sequeNCes in <A HREF="ch2.htm" tppabs="http://cheminf.nankai.edu.cn/~eb~/Perl%205%20By%20Example/ch2.htm" >Chapter 2</A> &quot;Numeric and String  
Literals.&quot;</BLOCKQUOTE>



</TD></TR>

</TABLE>

</CENTER>

<P>

<P>

<IMG SRC="pseudo.gif" tppabs="http://cheminf.nankai.edu.cn/~eb~/Perl%205%20By%20Example/pseudo.gif" BORDER=1 ALIGN=RIGHT><p>

<BLOCKQUOTE>

<I>Assign a string literal to </I><TT><I>$pathName</I></TT><I>.

<BR>

Find the location of the last backslash by starting at the end

of the string and working backward using the </I><TT><I>rindex()</I></TT><I>

fuNCtion. When the position of the last backslash is found, add

one to it so that<BR>

</I><TT><I>$position</I></TT><I> points

at the first character (&quot;W&quot;) of the file name.<BR>

Use the </I><TT><I>substr()</I></TT><I>

fuNCtion to extract the file name and assign it<BR>

to </I><TT><I>$fileName</I></TT><I>.

<BR>

Print </I><TT><I>$fileName</I></TT><I>.</I>

</BLOCKQUOTE>

<BLOCKQUOTE>

<PRE>

$pathName = &quot;C:\\WINDOWS\\TEMP\\WSREWE.DAT&quot;;

$position = rindex($pathName, &quot;\\&quot;) + 1;

$fileName = substr($pathName, $position);

print(&quot;$fileName\n&quot;);

</PRE>

</BLOCKQUOTE>

<P>

This program prints:

<BLOCKQUOTE>

<PRE>

WSREWE.DAT

</PRE>

</BLOCKQUOTE>

<P>

If the third parameter-the length-is not supplied to <TT>substr()</TT>,

it simply returns the sub-string that starts at the position specified

by the second parameter and continues until the end of the string

specified by the first parameter.

<H2><A NAME="ArrayFuNCtions"><FONT SIZE=5 COLOR=#FF0000>

Array FuNCtions</FONT></A></H2>

<P>

Arrays are a big part of the Perl language and Perl has a lot

of fuNCtions to help you work with them. Some of the actions arrays

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品一区二区三区影院| 色欧美88888久久久久久影院| 免费av网站大全久久| 天天操天天干天天综合网| 蜜芽一区二区三区| 成人精品小蝌蚪| 欧美日韩久久不卡| 久久精品视频在线免费观看| 国产精品福利一区| 日本特黄久久久高潮| 国产成人在线视频网站| www.欧美日韩国产在线| 在线观看91精品国产麻豆| 国产色爱av资源综合区| 亚洲一区二区三区在线看| 九九精品一区二区| 欧美亚洲国产一区二区三区va| 欧美r级在线观看| 亚洲一区二区三区四区在线免费观看| 蜜桃精品在线观看| 91小视频免费看| 欧美高清在线精品一区| 麻豆成人久久精品二区三区小说| 在线一区二区三区四区| 亚洲私人黄色宅男| 成人黄色综合网站| 国产丝袜美腿一区二区三区| 麻豆免费精品视频| 精品国精品国产尤物美女| 精品一区二区三区视频在线观看| 欧美日韩小视频| 亚洲成av人片www| 欧美日韩二区三区| 婷婷一区二区三区| 日韩美女一区二区三区| 青青草国产精品97视觉盛宴| 日韩欧美中文字幕公布| 免费成人在线影院| 2欧美一区二区三区在线观看视频| kk眼镜猥琐国模调教系列一区二区 | 亚洲国产成人自拍| 色伊人久久综合中文字幕| 亚洲综合色婷婷| 欧美日韩精品免费观看视频| 免费在线一区观看| 精品欧美一区二区三区精品久久| 天天av天天翘天天综合网色鬼国产 | 1区2区3区国产精品| 成人av在线播放网址| 亚洲综合999| 久久久久久久性| 94-欧美-setu| 视频一区国产视频| 欧美精品一区二区三区视频| 色婷婷亚洲精品| 国产精品亚洲综合一区在线观看| 亚洲色图19p| 久久久国产精华| 在线观看日产精品| 成人天堂资源www在线| 日韩精品一二三| 亚洲黄色av一区| 久久精品在线免费观看| 欧美日韩高清在线播放| 在线免费观看不卡av| 国产高清在线观看免费不卡| 午夜精品福利在线| 一区二区三区精品| 伊人性伊人情综合网| 中文字幕日韩av资源站| 2024国产精品| 精品国产百合女同互慰| 26uuu亚洲| 久久中文娱乐网| 欧美成人免费网站| 欧美sm美女调教| 日韩一区二区免费在线电影| 4438x成人网最大色成网站| 精品视频1区2区3区| 日本韩国欧美在线| 精品视频1区2区| 欧美日韩精品一区视频| 欧美日韩激情在线| 欧美一区二区精品| 337p日本欧洲亚洲大胆精品| 久久伊人中文字幕| 国产日韩欧美在线一区| 国产精品美女久久久久久| 一区二区三区日韩在线观看| 午夜激情综合网| 国产成人免费在线视频| 91色在线porny| 欧美变态tickling挠脚心| 中文字幕在线一区| 婷婷久久综合九色国产成人 | 欧美sm美女调教| 亚洲国产精品成人综合| 亚洲综合精品久久| 国内不卡的二区三区中文字幕 | 久久久不卡影院| 亚洲一区日韩精品中文字幕| 国产一区二区三区免费播放| hitomi一区二区三区精品| 欧美日韩不卡一区| 自拍偷拍国产亚洲| 国产美女精品人人做人人爽| 91官网在线免费观看| 中文字幕不卡在线观看| 日韩精品福利网| av不卡免费电影| 精品成人一区二区三区四区| 亚洲va韩国va欧美va| 99国产精品国产精品毛片| 欧美精品一区二区精品网| 亚洲mv在线观看| 精品日本一线二线三线不卡| 五月婷婷欧美视频| 亚洲精品在线免费观看视频| 日本sm残虐另类| 欧美日韩国产成人在线91| 亚洲人成精品久久久久久| 欧美在线观看视频一区二区| 亚洲欧美日韩中文字幕一区二区三区 | 亚洲黄色片在线观看| 99久久综合99久久综合网站| 1区2区3区欧美| 在线精品视频一区二区三四| 欧美国产欧美综合| 成人一区二区三区| 久久久99精品免费观看| 国产一区在线看| 成人欧美一区二区三区小说| 91麻豆.com| 午夜精品久久久久久久久久| 欧美一区二区三区在线视频| 免费在线观看精品| 久久久久久久网| 91蝌蚪国产九色| 日本成人在线网站| 中文字幕欧美三区| 欧美日韩精品二区第二页| 狠狠色狠狠色综合日日91app| 亚洲国产成人在线| 欧美精品v国产精品v日韩精品| 日韩精品1区2区3区| 国产欧美一区视频| 91精品国产综合久久久久久 | 亚洲视频免费在线观看| 欧美少妇一区二区| 国产一区二区在线电影| 亚洲一区在线观看视频| 国产三级三级三级精品8ⅰ区| 欧美三级一区二区| 成人av午夜电影| 精品亚洲国产成人av制服丝袜| 伊人夜夜躁av伊人久久| 国产精品福利一区二区三区| 精品国产91久久久久久久妲己| 91福利国产精品| 色婷婷av一区二区三区大白胸 | 午夜精品久久久久久久99樱桃| 国产精品视频yy9299一区| 欧美一区二视频| 欧美三级视频在线观看| 91福利在线观看| 在线观看91精品国产入口| 91福利国产精品| 欧美三级韩国三级日本三斤| 色欧美88888久久久久久影院| 色老综合老女人久久久| 9i看片成人免费高清| 99re热这里只有精品免费视频| 成人v精品蜜桃久久一区| 成人国产免费视频| av日韩在线网站| 色婷婷一区二区三区四区| 91成人免费在线视频| 欧美精品少妇一区二区三区| 欧美一级在线免费| 久久久久国产精品厨房| 国产精品午夜久久| 亚洲欧美日韩综合aⅴ视频| 日韩电影在线观看网站| 狠狠久久亚洲欧美| av激情亚洲男人天堂| 色久综合一二码| 日韩一级免费观看| 国产精品欧美久久久久无广告| 一区二区三区四区高清精品免费观看 | 欧美福利一区二区| 欧美成人国产一区二区| 国产欧美精品区一区二区三区 | 91精品久久久久久蜜臀| 国产精品午夜在线观看| 日韩电影在线观看一区| 91蜜桃网址入口| 久久色在线观看| 免费观看一级欧美片| 色8久久精品久久久久久蜜| 欧美极品aⅴ影院|