| 導購 | 订阅 | 在线投稿
分享
 
 
當前位置: 王朝網路 >> perl >> 功能豐富的Perl:Perl6語法和正則表達式
 

功能豐富的Perl:Perl6語法和正則表達式

2008-05-19 06:25:40  編輯來源:互聯網  简体版  手機版  評論  字體: ||
 
 
  Perl 6 終于即將面世。在本文中,Ted 將向您介紹 Perl 6 語言的語法和正則表達式,並將它們與當前可用的 Perl 5 Parse::RecDescent 模塊進行對比。認識 Perl 正則表達式的新特性,並學會如何具體使用新奇而又功能強大的 Perl 腳本語言。

  對所有 Perl 編程人員而言,Perl 6 項目是一個熱門話題。Perl 一直是一門不斷發展的語言,幾乎從任何可以想像得到的角度都可以確定,Perl 6 確實是由 Perl 5 進化而來(不過,您也可以說它們的起源相同)。Perl 6 將運行于 Parrot 之上,Parrot 是一種通用虛擬機,不但可以加載和解釋 Perl 6 字節碼,還可以加載和解釋其他許多語言。

  不要讓將來的問題困擾著您。如果您曾經用了幾個月的時間來觀察某個建築物的建築過程,您就會知道,選好地基後要進行挖掘,金屬骨架似乎總是矗立著。工人們來來往往,工作一直在進行,但是表面看到的卻總是陳舊的、醜陋的、生鏽的金屬。然後,若幹天以後,突然間,建築物就完成了。Perl 6 項目當前正是處于那個長期的中間階段,表面看到的只是生鏽的金屬,而工人們正在深入地下進行幕後工作。如果您想洞悉項目的進展,那麽可以去查看最新的 Parrot 發行版本以及 Perl 6 每周的更新(請參閱參考資料中的鏈接)。

  本文將向您介紹 Perl 6 語言的語法和正則表達式,並將這些與當前可用的 Perl 5 Parse::RecDescent 模塊進行對比。如果以前對 Perl 5 有所了解,熟悉 Parse::RecDescent,並且有詞法分析(lexing)和句法分析(parsing)方面的經驗,那麽這些會對您掌握本文有很大幫助,此外,本文是爲那些對 Perl 6 語法和正則表達式感興趣的所有 Perl 編程人員撰寫的。

  Perl 6 正則表達式和語法概述

  首先需要聲明一件事:Perl 將通過使用 :p5 修飾符來支持 Perl 5 正則表達式。對于那些對 Perl 6 正則表達式不感興趣或者不想轉到這方面來的人而言,這是一個福音。此外,Perl 6 正則表達式可能(但不是必須)與 Perl 5 中對應的正則表達式有本質上的區別。

  在需要時,Perl 6 正則表達式可以被複用。在匹配單一的詞時,複用正則表達式是很荒謬的;但在解析配置文件時,幾乎必須要複用正則表達式(這取決于配置文法的複雜度、發生修改的頻率等)。

  在 Perl 5 中,Regexp::Common 模塊(請參閱參考資料)已經在嘗試複用正則表達式,但是,因爲 Perl 5 不允許複用正則表達式,所以不得不將它們封裝在一個模塊接口中。 Perl 6 完全支持這種複用。

  盡管您可以編寫類似 Perl 5 正則表達式的模糊而晦澀的 Perl 6 正則表達式,但在默認情況下,允許啓用空格注解;所以,雖然在 Perl 5 中您可以用「hello there」本身來匹配「hello there」,但在 Perl 6 中,您必須將其改爲 /hello <sp there/。這樣就可以在正則表達中將條件清晰地分離開來。

  更重要的是,在語法(grammars)內部使用正則表達式時,Perl 6 正則表達式必須不那麽晦澀。編程人員會發現(我希望如此, Larry Wall 也是),對清單 2 的理解與維護要比對清單 1 的容易得多:

  清單 1. 沒有語法的正則表達式

  # note this is just a language example, not an accurate name matcher

  # Perl 6 <[A-Z] is equivalent to the Perl 5 [A-Z]

  # Perl 6 :w modifier surrounds all tokens with "automagic" whitespace,

  # which basically means it will match what most people would call

  # "words"

  $name = m:w/ <[A-Z]<[a-z]+ <[A-Z]<[a-z]+ /;

  清單 2. 在語法中作爲規則的正則表達式

  # note this is just a language example, not an accurate name matcher

  grammar English

  {

  rule name :w { <singlename <singlename };

  rule singlename { <[A-Z]<[a-z]+ };

  };

  清單 2 不僅更容易讀懂,而且維護起來也更容易。例如,Perl 6 本身已經定義了 <upper 和 <lower 規則,這使事情變得更爲簡單:

  清單 3. 在語法中作爲規則的經過改進的正則表達式

  # note this is just a language example, not an accurate name matcher

  grammar Names

  {

  rule name :w { <singlename <singlename };

  rule singlename { <upper<lower+ };

  };

  瞧!使用 <upper 和 <lower 之後,我們就複用了代碼。此外,我們現在還可以處理 Unicode 名稱,而這之前,我們只能局限于處理從 A 到 Z 開頭的名稱。代碼複用是一項出色的技術。

  在進行更進一步的維護時,幾乎總是需要對名稱中的破折號或其他名稱(比如 Don Quixote de la Mancha)進行修正(舉例來說)。同樣,在將對個別規則的更改隔離出來,或者在需要時創建一個新規則的時候,您會注意到這是多麽簡單。

  語法(Grammars) 是相當簡單的概念。它們是具有專用名稱空間(namespace)和專用子例程的程序包;每一個子例程被稱爲一個規則。語法可以繼承其他語法。這樣就使得編程人員既可以複用其他人的代碼,也可以編寫能夠複用的代碼。從 Perl 模塊的 CPAN 存檔文件(archive)獲得的成功中可以明顯地看出這種複用的價值。Perl 6 語法在規則中使用正則表達式,然後可以將這些規則用于其他規則之中。

  對比 Parse::RecDescent 與 Perl 6 的語法

  熟悉 Parse::RecDescent 的人都知道,它是一個功能強大的工具。Parse::RecDescent 是一個 Perl 5 模塊,只使用很少代碼就可以生成非常強大的語法。這些語法與 Perl 6 的語法是否非常相似呢?是這樣的,Parse::RecDescent 的作者 Damian Conway 深入參與了 Perl 6 的許多工作。因此,很多在 Parse::RecDescent 中證明好用的思想都被應用到 Perl 6 中也就不足爲奇了。它們的一些語法有很多類似之處。

  Parse::RecDescent(此後稱之爲 P::RD)使用 new() 模塊文法來創建新的語法。每個 P::RD 語法成爲 P::RD 類中的一個對象,語法中的每一個規則都可以作爲用來執行動作的方法。P::RD 語法可以將動作(action)與每一個規則關聯起來,將其作爲解析過程中的一個完整部分。在 Perl 5 本身中,解析是一個事件,而使用了擴展語法的動作則是達成目標途徑中的不幸犧牲品(roadkill),那些擴展的語法被證明是造成迷惑的罪魁禍首。這一區別使得 P::RD 比 Perl 5 正則表達式更爲有效,原因在于當檢測到匹配對象時,它會使某些事情發生。

  Perl 6 語法吸取了 P::RD 的經驗,它意識到了這些動作的實用性,現在,這些動作已經成爲其首要的組成部分。每發現一個匹配對象,就會執行一個動作(代碼塊)。即使匹配對象的內容可能已經被修改也是如此!此外,這些動作的語法與 P::RD 中的語法同樣簡單。

  清單 4. 包含動作的 Parse::RecDescent 語法

  # small extract from my cfperl.pl program's global parser

  my $parse_global = new Parse::RecDescent (q{

  input:

  blank | comment | class | section

  comment: /^\s*/ '#' { 1; }

  blank: /^\s*$/ { 1; }

  section: /\w+/ ':'

  { $::current_section = $item[1];

  $::current_classes = 'any'; 1;

  }

  class: compound_class '::'

  { $::current_classes = $item{compound_class}; 1; }

  compound_class: /[-!.|\w]+/

  });

  $parse_global-input("TEXT GOES HERE");

  上面的語法只有一個規則,即 input,它將匹配 blank、comment、class 或者 section 規則。這些規則中的每一個規則都有一個定義,它們可以是獨立的或是基于另一個規則的,也可以同時具備這兩種特性。

  注意像普通的代碼塊那樣封裝在大括號 { } 內的動作。對于一個片斷(section),動作將全局變量 $current_section 設置爲正在進行匹配的片斷,並重新設置 $current_classes 全局變量。對于類,動作將全局的 $current_classes 變量設置爲匹配的條目。

  這個語法在 Perl 6 中會是什麽樣的呢?

  清單 5. 清單 4 語法的 Perl 6 譯本

  # this may be buggy - it's certainly untested

  # every input is known to be one line, without newline characters

  grammar Global

  {

  rule input { <blank | <comment | <class | <section }

  rule blank { ^^ \s* $$ }

  rule comment { ^^ \s* \# }

  rule section

  { (\w+) \s* \:

  {

  $::current_section = $1;

  $::current_classes = 'any';

  }

  }

  rule class { (<compound_class) \s* \:\:

  {

  $::current_classes = $1;

  }

  }

  rule compound_class { <[-!.|\w]+ }

  }

  Perl 5 的正則表達式

  如果您對 Perl 5 正則表達式非常熟悉,那麽可以跳過這一節。

  所有 Perl 5 編程人員都熟悉 Perl 5 正則表達式。在進行匹配時,要用 m// 操作符來標識這些正則表達式(有時是可選的),而當匹配並替換時,則要用 s/// 操作符來標識它們。在特定的情況下,/ 字符可以由其他字符取代,並且有一些特定的操作符,它們與正則表達式有幾分類似,不過這樣的操作符不多(例如 tr///)。Perl 5 正則表達式要指明的或者是「尋找此內容」,或者是「尋找此內容,並

  
 
 
 
上一篇《功能豐富的Perl:有趣的Ion窗口管理器》
下一篇《功能豐富的Perl:遺傳算法仿真多細胞機體》
 
 
 
 
 
 
日版寵物情人插曲《Winding Road》歌詞

日版寵物情人2017的插曲,很帶節奏感,日語的,女生唱的。 最後聽見是在第8集的時候女主手割傷了,然後男主用嘴幫她吸了一下,插曲就出來了。 歌手:Def...

兄弟共妻,我成了他們夜裏的美食

老鍾家的兩個兒子很特別,就是跟其他的人不太一樣,魔一般的執著。兄弟倆都到了要結婚的年齡了,不管自家老爹怎麽磨破嘴皮子,兄弟倆說不娶就不娶,老父母爲兄弟兩操碎了心...

如何磨出破洞牛仔褲?牛仔褲怎麽剪破洞?

把牛仔褲磨出有線的破洞 1、具體工具就是磨腳石,下面墊一個硬物,然後用磨腳石一直磨一直磨,到把那塊磨薄了,用手撕開就好了。出來的洞啊很自然的。需要貓須的話調幾...

我就是掃描下圖得到了敬業福和愛國福

先來看下敬業福和愛國福 今年春節,支付寶再次推出了“五福紅包”活動,表示要“把欠大家的敬業福都還給大家”。 今天該活動正式啓動,和去年一樣,需要收集“五福”...

冰箱異味産生的原因和臭味去除的方法

有時候我們打開冰箱就會聞到一股異味,冰箱裏的這種異味是因爲一些物質發出的氣味的混合體,聞起來讓人惡心。 産生這些異味的主要原因有以下幾點。 1、很多人有這種習...

《極品家丁》1-31集大結局分集劇情介紹

簡介 《極品家丁》講述了現代白領林晚榮無意回到古代金陵,並追隨蕭二小姐化名“林三”進入蕭府,不料卻陰差陽錯上演了一出低級家丁拼搏上位的“林三升職記”。...

李溪芮《極品家丁》片尾曲《你就是我最愛的寶寶》歌詞

你就是我最愛的寶寶 - 李溪芮 (電視劇《極品家丁》片尾曲) 作詞:常馨內 作曲:常馨內 你的眉 又鬼馬的挑 你的嘴 又壞壞的笑 上一秒吵鬧 下...

烏梅的功效與作用以及烏梅的食用禁忌有哪些?

烏梅,又稱春梅,中醫認爲,烏梅味酸,性溫,無毒,具有安心、除熱、下氣、祛痰、止渴調中、殺蟲的功效,治肢體痛、肺痨病。烏梅泡水喝能治傷寒煩熱、止吐瀉,與幹姜一起制...

什麽是脂肪粒?如何消除臉部脂肪粒?

什麽是脂肪粒 在我們的臉上總會長一個個像脂肪的小顆粒,弄也弄不掉,而且顔色還是白白的。它既不是粉刺也不是其他的任何痘痘,它就是脂肪粒。 脂肪粒雖然也是由油脂...

網絡安全治理:國家安全保障的主要方向是打擊犯罪,而不是處置和懲罰受害者

來源:中國青年報 新的攻擊方法不斷湧現,黑客幾乎永遠占據網絡攻擊的上風,我們不可能通過技術手段杜絕網絡攻擊。國家安全保障的主要方向是打擊犯罪,而不是處置和懲罰...

河南夫妻在溫嶺網絡直播“造人”內容涉黃被刑事拘留

夫妻網絡直播“造人”爆紅   1月9日,溫嶺城北派出所接到南京警方的協查通告,他們近期打掉了一個涉黃直播APP平台。而根據掌握的線索,其中有一對涉案的夫妻主播...

如何防止牆紙老化?牆紙變舊變黃怎麽辦?

如何防止牆紙老化? (1)選擇透氣性好的牆紙 市場上牆紙的材質分無紡布的、木纖維的、PVC的、玻璃纖維基材的、布面的等,相對而言,PVC材質的牆紙最不透氣...

鮮肌之謎非日本生産VS鮮肌之謎假日貨是謠言

觀點一:破日本銷售量的“鮮肌之謎” 非日本生産 近一段時間,淘寶上架了一款名爲“鮮肌之謎的” 鲑魚卵巢美容液,號稱是最近日本的一款推出的全新護膚品,産品本身所...

中國最美古詩詞精選摘抄

系腰裙(北宋詞人 張先) 惜霜蟾照夜雲天,朦胧影、畫勾闌。人情縱似長情月,算一年年。又能得、幾番圓。 欲寄西江題葉字,流不到、五亭前。東池始有荷新綠,尚小如...

關于女人的經典語句

關于女人的經典語句1、【做一個獨立的女人】 思想獨立:有主見、有自己的人生觀、價值觀。有上進心,永遠不放棄自己的理想,做一份自己喜愛的事業,擁有快樂和成就...

未來我們可以和性愛機器人結婚嗎?

你想體驗機器人性愛嗎?你想和性愛機器人結婚嗎?如果你想,機器人有拒絕你的權利嗎? 近日,第二屆“國際人類-機器人性愛研討會”大會在倫敦金史密斯大學落下帷幕。而...

全球最變態的十個地方

10.土耳其地下洞穴城市 變態指數:★★☆☆☆ 這是土耳其卡帕多西亞的一個著名景點,傳說是當年基督教徒們爲了躲避戰爭而在此修建。裏面曾住著20000人,...

科學家稱,人類死亡後意識將在另外一個宇宙中繼續存活

據英國《每日快報》報道,一位科學家兼理論家Robert Lanza博士宣稱,世界上並不存在人類死亡,死亡的只是身體。他認爲我們的意識借助我們體內的能量生存,而且...

《屏裏狐》片頭曲《我愛狐狸精》歌詞是什麽?

《我愛狐狸精》 - 劉馨棋   (電視劇《屏裏狐》主題曲)   作詞:金十三&李旦   作曲:劉嘉   狐狸精 狐狸仙   千年修...

 
 
 
  Perl 6 終于即將面世。在本文中,Ted 將向您介紹 Perl 6 語言的語法和正則表達式,並將它們與當前可用的 Perl 5 Parse::RecDescent 模塊進行對比。認識 Perl 正則表達式的新特性,並學會如何具體使用新奇而又功能強大的 Perl 腳本語言。   對所有 Perl 編程人員而言,Perl 6 項目是一個熱門話題。Perl 一直是一門不斷發展的語言,幾乎從任何可以想像得到的角度都可以確定,Perl 6 確實是由 Perl 5 進化而來(不過,您也可以說它們的起源相同)。Perl 6 將運行于 Parrot 之上,Parrot 是一種通用虛擬機,不但可以加載和解釋 Perl 6 字節碼,還可以加載和解釋其他許多語言。   不要讓將來的問題困擾著您。如果您曾經用了幾個月的時間來觀察某個建築物的建築過程,您就會知道,選好地基後要進行挖掘,金屬骨架似乎總是矗立著。工人們來來往往,工作一直在進行,但是表面看到的卻總是陳舊的、醜陋的、生鏽的金屬。然後,若幹天以後,突然間,建築物就完成了。Perl 6 項目當前正是處于那個長期的中間階段,表面看到的只是生鏽的金屬,而工人們正在深入地下進行幕後工作。如果您想洞悉項目的進展,那麽可以去查看最新的 Parrot 發行版本以及 Perl 6 每周的更新(請參閱參考資料中的鏈接)。   本文將向您介紹 Perl 6 語言的語法和正則表達式,並將這些與當前可用的 Perl 5 Parse::RecDescent 模塊進行對比。如果以前對 Perl 5 有所了解,熟悉 Parse::RecDescent,並且有詞法分析(lexing)和句法分析(parsing)方面的經驗,那麽這些會對您掌握本文有很大幫助,此外,本文是爲那些對 Perl 6 語法和正則表達式感興趣的所有 Perl 編程人員撰寫的。   Perl 6 正則表達式和語法概述   首先需要聲明一件事:Perl 將通過使用 :p5 修飾符來支持 Perl 5 正則表達式。對于那些對 Perl 6 正則表達式不感興趣或者不想轉到這方面來的人而言,這是一個福音。此外,Perl 6 正則表達式可能(但不是必須)與 Perl 5 中對應的正則表達式有本質上的區別。   在需要時,Perl 6 正則表達式可以被複用。在匹配單一的詞時,複用正則表達式是很荒謬的;但在解析配置文件時,幾乎必須要複用正則表達式(這取決于配置文法的複雜度、發生修改的頻率等)。   在 Perl 5 中,Regexp::Common 模塊(請參閱參考資料)已經在嘗試複用正則表達式,但是,因爲 Perl 5 不允許複用正則表達式,所以不得不將它們封裝在一個模塊接口中。 Perl 6 完全支持這種複用。   盡管您可以編寫類似 Perl 5 正則表達式的模糊而晦澀的 Perl 6 正則表達式,但在默認情況下,允許啓用空格注解;所以,雖然在 Perl 5 中您可以用「hello there」本身來匹配「hello there」,但在 Perl 6 中,您必須將其改爲 /hello <sp there/。這樣就可以在正則表達中將條件清晰地分離開來。   更重要的是,在語法(grammars)內部使用正則表達式時,Perl 6 正則表達式必須不那麽晦澀。編程人員會發現(我希望如此, Larry Wall 也是),對清單 2 的理解與維護要比對清單 1 的容易得多:   清單 1. 沒有語法的正則表達式   # note this is just a language example, not an accurate name matcher   # Perl 6 <[A-Z] is equivalent to the Perl 5 [A-Z]   # Perl 6 :w modifier surrounds all tokens with "automagic" whitespace,   # which basically means it will match what most people would call   # "words"   $name = m:w/ <[A-Z]<[a-z]+ <[A-Z]<[a-z]+ /;   清單 2. 在語法中作爲規則的正則表達式   # note this is just a language example, not an accurate name matcher   grammar English   {   rule name :w { <singlename <singlename };   rule singlename { <[A-Z]<[a-z]+ };   };   清單 2 不僅更容易讀懂,而且維護起來也更容易。例如,Perl 6 本身已經定義了 <upper 和 <lower 規則,這使事情變得更爲簡單:   清單 3. 在語法中作爲規則的經過改進的正則表達式   # note this is just a language example, not an accurate name matcher   grammar Names   {   rule name :w { <singlename <singlename };   rule singlename { <upper<lower+ };   };   瞧!使用 <upper 和 <lower 之後,我們就複用了代碼。此外,我們現在還可以處理 Unicode 名稱,而這之前,我們只能局限于處理從 A 到 Z 開頭的名稱。代碼複用是一項出色的技術。   在進行更進一步的維護時,幾乎總是需要對名稱中的破折號或其他名稱(比如 Don Quixote de la Mancha)進行修正(舉例來說)。同樣,在將對個別規則的更改隔離出來,或者在需要時創建一個新規則的時候,您會注意到這是多麽簡單。   語法(Grammars) 是相當簡單的概念。它們是具有專用名稱空間(namespace)和專用子例程的程序包;每一個子例程被稱爲一個規則。語法可以繼承其他語法。這樣就使得編程人員既可以複用其他人的代碼,也可以編寫能夠複用的代碼。從 Perl 模塊的 CPAN 存檔文件(archive)獲得的成功中可以明顯地看出這種複用的價值。Perl 6 語法在規則中使用正則表達式,然後可以將這些規則用于其他規則之中。   對比 Parse::RecDescent 與 Perl 6 的語法   熟悉 Parse::RecDescent 的人都知道,它是一個功能強大的工具。Parse::RecDescent 是一個 Perl 5 模塊,只使用很少代碼就可以生成非常強大的語法。這些語法與 Perl 6 的語法是否非常相似呢?是這樣的,Parse::RecDescent 的作者 Damian Conway 深入參與了 Perl 6 的許多工作。因此,很多在 Parse::RecDescent 中證明好用的思想都被應用到 Perl 6 中也就不足爲奇了。它們的一些語法有很多類似之處。   Parse::RecDescent(此後稱之爲 P::RD)使用 new() 模塊文法來創建新的語法。每個 P::RD 語法成爲 P::RD 類中的一個對象,語法中的每一個規則都可以作爲用來執行動作的方法。P::RD 語法可以將動作(action)與每一個規則關聯起來,將其作爲解析過程中的一個完整部分。在 Perl 5 本身中,解析是一個事件,而使用了擴展語法的動作則是達成目標途徑中的不幸犧牲品(roadkill),那些擴展的語法被證明是造成迷惑的罪魁禍首。這一區別使得 P::RD 比 Perl 5 正則表達式更爲有效,原因在于當檢測到匹配對象時,它會使某些事情發生。   Perl 6 語法吸取了 P::RD 的經驗,它意識到了這些動作的實用性,現在,這些動作已經成爲其首要的組成部分。每發現一個匹配對象,就會執行一個動作(代碼塊)。即使匹配對象的內容可能已經被修改也是如此!此外,這些動作的語法與 P::RD 中的語法同樣簡單。   清單 4. 包含動作的 Parse::RecDescent 語法   # small extract from my cfperl.pl program's global parser   my $parse_global = new Parse::RecDescent (q{   input:   blank | comment | class | section   comment: /^\s*/ '#' { 1; }   blank: /^\s*$/ { 1; }   section: /\w+/ ':'   { $::current_section = $item[1];   $::current_classes = 'any'; 1;   }   class: compound_class '::'   { $::current_classes = $item{compound_class}; 1; }   compound_class: /[-!.|\w]+/   });   $parse_global-input("TEXT GOES HERE");   上面的語法只有一個規則,即 input,它將匹配 blank、comment、class 或者 section 規則。這些規則中的每一個規則都有一個定義,它們可以是獨立的或是基于另一個規則的,也可以同時具備這兩種特性。   注意像普通的代碼塊那樣封裝在大括號 { } 內的動作。對于一個片斷(section),動作將全局變量 $current_section 設置爲正在進行匹配的片斷,並重新設置 $current_classes 全局變量。對于類,動作將全局的 $current_classes 變量設置爲匹配的條目。   這個語法在 Perl 6 中會是什麽樣的呢?   清單 5. 清單 4 語法的 Perl 6 譯本   # this may be buggy - it's certainly untested   # every input is known to be one line, without newline characters   grammar Global   {   rule input { <blank | <comment | <class | <section }   rule blank { ^^ \s* $$ }   rule comment { ^^ \s* \# }   rule section   { (\w+) \s* \:   {   $::current_section = $1;   $::current_classes = 'any';   }   }   rule class { (<compound_class) \s* \:\:   {   $::current_classes = $1;   }   }   rule compound_class { <[-!.|\w]+ }   }   Perl 5 的正則表達式   如果您對 Perl 5 正則表達式非常熟悉,那麽可以跳過這一節。   所有 Perl 5 編程人員都熟悉 Perl 5 正則表達式。在進行匹配時,要用 m// 操作符來標識這些正則表達式(有時是可選的),而當匹配並替換時,則要用 s/// 操作符來標識它們。在特定的情況下,/ 字符可以由其他字符取代,並且有一些特定的操作符,它們與正則表達式有幾分類似,不過這樣的操作符不多(例如 tr///)。Perl 5 正則表達式要指明的或者是「尋找此內容」,或者是「尋找此內容,並   
󰈣󰈤
 
 
 
  免責聲明:本文僅代表作者個人觀點,與王朝網路無關。王朝網路登載此文出於傳遞更多信息之目的,並不意味著贊同其觀點或證實其描述,其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,並請自行核實相關內容。
 
 
寶貝清純百變豬豬
美女喜太狼裙裝時代
美麗幹練的OL
平面模特楊棋涵
石系列印象
海洲錦屏磷礦
再憶桂林
觀:重金屬所攝影:元陽梯田所想
 
>>返回首頁<<
 
 
 
 熱帖排行
 
 
 
 
© 2005- 王朝網路 版權所有