Tag Archives: perl

Perl 上的 Monkey Patch

這整個週末都在跟 Net::DNS 奮戰 edns-client-subnet,遇到模組內的一小段程式有 bug,先用 monkey patch 硬上,之後再看看要怎麼丟 patch 回 upstream。 monkey patch 的方法主要是參考「How can I monkey-patch an instance method in Perl?」這邊提供的方法而來的。 由於實際的行為是 subroutine redefined (會產生警告訊息),所以要局部關掉 warnings,然後再把整個 subroutine 換掉: use BugPackage; { no warnings; local *BugPackage::bug_function = sub { # … Continue reading

Posted in Computer, DNS, Murmuring, Network, Programming | Tagged , , , , , | Leave a comment

GitHub 上程式語言的趨勢

GitHub 給了從 2008 年到 2015 年現在,放在 GitHub 上專案所使用程式語言的排名:「Language Trends on GitHub」。 這同時包括了公開與私人 repository: The rank represents languages used in public & private repositories, excluding forks, as detected by Linguist. 可以看到 Java 專案的排名逐步上升,應該是愈來愈多 Java 專案放到 GitHub 上 (應該是跟 Android 有關)。而 Perl … Continue reading

Posted in Computer, Murmuring, Network, Programming | Tagged , , , , , , , , | 2 Comments

幾個程式語言對引號以及 backslash 解讀...

三個 P 開頭的語言... PHP: #!/usr/bin/env php <?php echo "\\\"\'", "\n"; echo '\\\"\'', "\n"; Perl: #!/usr/bin/env perl use 5.010; use strict; use warnings; INIT { $a = "\\\"\'"; $b = '\\\"\''; say $a; say $b; } __END__ Python: #!/usr/bin/env python print … Continue reading

Posted in Computer, Murmuring, Programming | Tagged , , , , | 1 Comment

FreeBSD 上 Perl 升級的問題...

以往升級 Perl 後要跑 perl-after-upgrade -f,把本來在 /usr/local/lib/perl/5.12.4 的東西搬到 /usr/local/lib/perl/5.12.5 下,然後還是要到目錄下確認有沒有東西遺漏,漏掉的還是得用 portmaster 跑一次... 現在則是改成 /usr/local/lib/perl/5.12 這樣的路徑,把最後的 minor version 拿掉,至少同個主版本升級時 (5.12.x 之間) 比較不會痛了... 不過順便趁這次換成 5.16 好了,5.12 應該也快過保了...

Posted in Computer, FreeBSD, Murmuring, OS, Software | Tagged , , | Leave a comment

利用 cpanm 的資料計算 Perl 版本分佈狀況...

如標題 :p 只拿 cpanm 分析一定會有偏差,所以數字參考看看就好:「Perl versions usage stats (with cpanm)」。 Perl 其中一個討厭的問題是版本太多了... 不是官方說 EoL 就可以 EoL 啊 :/

Posted in Computer, Murmuring, Network, Programming, Software | Tagged , , , | Leave a comment

node.js 版的 YUICompressor...

看「Fantastic front-end performance Part 1 – Concatenate, Compress & Cache – A Node.JS Holiday Season, part 4」的時候發現 node.js 版的 YUICompressor 比起 Perl 版本更早之前就 porting 完成了:「UglifyCSS」,甚至是官方版本的「yuicompressor / ports / js / cssmin.js」也都遠早於 Perl 版本... 用 npm 裝 uglifycss 就可以用了...

Posted in Computer, Murmuring, Network, Programming, Software, WWW | Tagged , , , , , , , , , , , , , , | Leave a comment

支援新版 Plurk API (OAuth Core 1.0a) 的 Twitter To Plurk Script

code 放在「Plurk 新版 OAuth Core 1.0a 的 twitter to plurk」,其中裡面用到的 SQLite 的表格結構請參考「Twitter 轉 Plurk 的程式...」這篇文章的說明。把本來是 plaintext password 的程式換過去後看起來舒服多了,不過中間寫起來讓人頗 orz... 先是一直沒辦法透過 OAuth::Lite 送出 UTF8 內容,於是決定換成 Net::OAuth,結果因為文件內的範例都沒講到重點而倒地不起... 然後遇到 Plurk API 2.0 beta 的文件沒有列出是 GET 或是 POST,於是又試了老半天... 文件真的很重要...

Posted in Blog, Computer, Murmuring, Network, Programming, Security, Social, Software, WWW | Tagged , , , , , | 2 Comments

Perl 5.14.0...

在 The Perl Foundation News 上有 Perl 5.14.0 釋出的公告:「Perl 5.14」。講了一堆新功能,比較重要的其實是: It is important to note that this version marks the official end of support for Perl 5.10. 換句話說,目前使用 Perl 5.10 的系統都... (狂抓頭) 這包括 Debian 全系列 (squeeze/perl 以及之前的 lenny/perl),以及 Ubuntu 目前所有 … Continue reading

Posted in Computer, Murmuring, Programming, Software | Tagged | 1 Comment

Ubuntu 11.04 下使用 App::perlbrew 安裝 Perl 5.12.3

感謝 gugod 提供的新版把 Ubuntu 11.04 (Natty) 下無法 compile 的問題搞定了:「Ubuntu 11.04 and perlbrew installation problems」。主要的原因在於 library 放置的路徑改變,造成 Perl 的 Configure 抓不到。 順便紀錄一下,有時 CPAN mirror 更新不夠快,cpanm 安裝可能會失敗,這個問題加上 cpan.cpantesters.org mirror 就可以解決:(放到 .bashrc 裡) export PERL_CPANM_OPT="--mirror http://cpan.nctu.edu.tw/ --mirror http://cpan.cpantesters.org/"

Posted in Computer, Linux, Murmuring, OS, Programming, Software | Tagged , , | Leave a comment

Perl 的 eval

沒有把 eval 的 manual 弄清楚,結果中了不少槍... 以這段 code 來說: #!/usr/bin/env perl use strict; use warnings; use Data::Dumper; sub a { eval { return 'Inside eval'; }; return undef; } print Dumper a(); __END__ 輸出結果會是 undef,而非 Inside eval,因為: the value returned is … Continue reading

Posted in Computer, Murmuring, Programming, Software | Tagged , , | 1 Comment