原创 Perl 閉包模擬類實現二叉樹

在上一篇文章中用函數方式實現了一個二叉樹,本篇用閉包模擬類的方式來重新實現,不同於傳統意義的Perl 類,否則也不用去費力重新實現,本篇用閉包來模擬類的一些行爲,以消息傳遞的方式調用方法。 功能同上一個版本的基本一樣,是用閉包的好處:

原创 Perl KMP 算法

瞭解了一下KMP 算法,自己嘗試實現,也比較簡單,具體原理參考google baidu,不再重複,這裏只作爲一個學習的紀錄。 use Data::Dumper; my $from = 'abababd ababc'; my $find

原创 Perl 內部結構詳解 -- PerlGuts Illustrated

之前想看一下Perl的實現,無意中搜到了這篇文章,對Perl內部類型的結構解釋的很清晰,推薦感興趣的都仔細看一下,想優化的時候做到心中有數。 接下來的幾篇blog將翻譯這篇文檔中常見類型的部分,做個記錄,加深印象,同時也方便大家閱讀理解。

原创 Python SocketServer 分析

研究了一下SocketServer模塊,記錄下每個類下函數的調用關係,加深瞭解class BaseServer: ======================================================== + __i

原创 Perl 判斷一個字符串中所有字符是否在另外一個字符串中出現

在酷殼 – CoolShell.cn 中看到一個文章,判斷一個字符串中的所有字符是否在另外一個字符串中出現,如果用循環的話時間複雜度是O(mxn),如果使用先排序後判斷時間複雜度是O(mlgm)+O(nlgn)+O(m),作者面試的時候考

原创 Perl 內部結構詳解 -- PerlGuts Illustrated (1)

首先看一下Perl data structure。Perl內部稱爲SV(scalar value), AV(array value), HV(hash value), 此外IV代表integer, NV代表double, PV代表stri

原创 Perl threads 摘要

最近又寫了一個多線程的小工具,對一些多線程的使用有了進一步的心得。 Perl 創建線程有兩種方式,正常通過threads->create 創建線程,用async  創建一個調用匿名過程的線程,具體參考perldoc threads。線程

原创 Background Job "Stopped" with SSH

運行了一個後臺程序,此程序調用SSH遠程執行另外的任務,當多個這樣的後臺程序執行的時候,狀態經常從Running 變爲Stopped,導致程序中斷。 解決辦法,覆蓋三個I/O,具體參考:http://en.wikipedia.org/wi

原创 Perl 新浪股票信息收集

通過解析SINA HTTP 返回的數據獲取股票信息,具體返回值參考文章實時股票數據接口大全。 使用說明: perl script.pl [-c -f] -d 獲取默認@defaultstock列表中股票信息,參數-c 清屏,參數-f 輸

原创 Perl threads join 返回值

寫一個多線程腳本過程中遇到一個奇怪的問題,線程的返回值總爲空,仔細探究了一下,終於搞明白了原因。 Perl 多線程創建過程中可以顯示或者隱式的指定context,可以理解爲返回值內容,如果沒有顯示指定則會根據腳本寫法來推測返回值。 如下

原创 Perl Symbolic Reference

看一些模塊的代碼,很多時候通過*glob的方式來改變變量或者函數,這種方法稱爲Symbolic reference。 首先看一下*glob的結構,這個在之前的博文已經講過,不做細述: SV = PVGV(

原创 Perl Test::Unit::Lite

找了半天,終於找到一個輕量級測試框架Test::Unit::Lite,這個框架只有一個文件,不需要依賴其他文件,如果使用其他測試框架需要下載很多其他依賴模塊,如果是手動下載的話基本是mission impossible。 說說它的使用:

原创 [JavaScript]ECMA-262 深入解析

今天看到一位js大俠的bolg,最新內容主要是關於ECMA-262-3的,實在是太有價值,這裏推薦給大家。 ECMA-262大家應該都不陌生吧,陌生就看這裏(ECMAScript Language Specification)。要學好j

原创 Perl 內部結構詳解 -- PerlGuts Illustrated (4 HV)

HV hash table是最複雜的數據結構,HV使用HE struct表示key/value結構,使用HEK表示key。 GvSTASH 當這個hash表示一個命名空間(模塊),STASH指向Perl 語法樹的一個節點,用來實

原创 Perl LWP&HTTP

閒來無事看了下LWP 模塊,簡單整理出了下圖,作爲一個概貌。 HTTP::Message 是基類,HTTP::Request & HTTP::Response繼承了它,同時他們也都用到HTTP::Header 模塊。LWP 主要是Use