顯示具有 perl 標籤的文章。 顯示所有文章
顯示具有 perl 標籤的文章。 顯示所有文章

2008年5月12日 星期一

self.pm

some convenient usage I prefer. :p
package PackageName;
use self;
use strict;

my @args;

sub new {
@args = args;
for (@args) {
blah~!
}
bless {}, self;
}

1;

self.pm++
 
 

2008年4月26日 星期六

learning perl review ch2


scalar:
    1.233, 2E-3, 3e45
# exponential float
123_123_234
# integer with underscore
0377, 0xff, 0b1111
# octal => 0, hexadecimal => 0x, binary => 0b
"hello,"."world!"
# concatenate with .
"hello" x 3
# repeat 3 time with x
"20fred" * 3
# ignore string when transform
$str = $str . "blah"; === $str .= "blah";
$int = $int ** 3; === $int **= 3;
# binary assignment operator
${word}blah~
# insert variable with dereference brace
eq == | ne != | < lt | > gt | <= le | >= ge
# string comparison operator

# return with \n at line end
defined($var)
# return true or false

initial parameters (perl -M)
    use warnings;
use diagnostics;

 
 

2008年4月25日 星期五

boring comparison

show complex data structure in perl and ruby

perl
#!/usr/bin/env perl
use warnings;
use Data::Dumper;

$a = ["a", "b", "c", { "key" => "value" } ];
print Dumper $a;


ruby
#!/usr/bin/env ruby
a = ["a", "b", "c", { "key" => "value" } ]
puts a.inspect
 
 

2008年2月24日 星期日

CPAN mirror SOP

3 steps note for how to mirror CPAN for fast installation in organization:

First, using rsync mirror whole CPAN to local machine. Write rsync -avHP --delete rsync.nic.funet.fi::CPAN /var/www/CPAN >> /var/log/rsync.log 2>&1 into crontab for daily synchronization. This step supposes mirror site root is put at /var/www/CPAN.

Second, write apache VirtualHost as below.
<VirtualHost *>
ServerName cpan.yourdomain

DocumentRoot /var/www/CPAN
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/CPAN/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

ErrorLog /var/log/apache2/cpan-error.log

LogLevel warn

CustomLog /var/log/apache2/cpan-access.log combined
ServerSignature On

</VirtualHost>

Restart your apache and access cpan.yourdomain. you can see it.

Third, register your mirror site at mirrors.cpan.org if you want to become a official mirror site.

 

2008年2月16日 星期六

perl 和 ruby 的 twitter shell

twitter 最近紅透半邊天,perl 和 ruby 都有了 twitter api,現在還有 twitter shell,perl 的 twitter shell 利用 cpan 下 install Twitter::Shell 就可以得到 /usr/local/bin/twittershell, 使用方式為新增一個 yaml,如: touch ~/.twittershell.yml , 裡面填入
username: yourtwitteraccount
password: yourtwitterpassword
在 shell 下 twittershell -c ~/.twittershell.yml 就進入該 shell, help 可以得到幫助。

ruby 版本內建在 twitter 這個 gem 內, sudo gem install twitter 就可以得到 /usr/bin/twitter,直接在 shell 下 twitter 就可以得到幫助。不過 ruby 版本對 unicode 沒有支援,無法顯示中文,嘗試在 twitter gem 內的 twitter.rb 加入
require 'jcode'
$KCODE = 'u'
,不過沒有效果,作者也表示暫時不會加入 unicode 支援。

2007年12月23日 星期日

jifty screencast

今天發現一個還不錯的 jifty 教學影片,位在
http://www.crium.univ-metz.fr/docs/devel/jifty/screencast.html

感覺上和 rails demo movie 差不多,晚點再來看看,不然 CPAN 上的 tutorial 實在不是我小小弱者看得懂的阿XD。

OS: CPAN 上的 tutorial 連基本的 MVC 架構都沒解釋清楚,實在也太把大家都當作強者了 Orz...

2007年12月6日 星期四

CGI::UploadEasy

今天研究了一下 CGI::UploadEasy 模組,這是 CGI 上傳模組中最簡單的一個,只要在網頁內設定好上傳檔案用的 input 欄位,然後最後加上一行

my $upload = CGI::UploadEasy->new(-uploaddir=>"上傳資料夾",-maxsize=>"負數視為不設限,單位為KB",-tempdir=>"暫存資料夾");

這樣會自動判斷有多少個檔案要上傳,還有上傳檔案的 mime-type,最後可以用 $upload 物件內的方法來取得上傳檔案的參數。

不過這個模組不是很適合我目前希望的方式,他能夠指定的參數只有目錄,中文也有問題,另外兩個 CGI::Upload 和 CGI::Uploader 模組則是功能太複雜了,過兩天有時間的話自己動手作一個上傳模組好了。

2007年7月27日 星期五

萬惡的 perl GD 和 Authen::Captcha module

原來是需要 libgd2-xpm-dev 這個套件,快記下來免得忘記了

2007年7月19日 星期四

install svk on debian

如果要從 cpan 安裝的話會發現缺少 SVN::Core,但並不是 cpan 裡面搜尋到的那個 SVN::Core,而是要安裝附屬於 SVN 的 library,在 debian 裡面分別是 libsvn-perl,libsvn-simple-perl,libsvn-mirror-perl,用 aptitude install 安裝三個套件後在進入 cpan command line 下 install SVK,就會順利完成安裝。

也可以用套件安裝,會簡單很多,一行 aptitude install svk 就結束了。不過我在用 cpan 安裝完後才發現有這個套件,來不及了:p,不過從 cpan 裝的好處是更新快,不用等 debian打包新的套件,也是不錯的選擇。

以目前 aptitude show svk 的內容來看該套件只有到 1.08-2 版,cpan 上的則已經到 2.0.0.1,如果兩個版號是相對應的,那麼 cpan 上的版本看來快很多了:)。

2007年7月18日 星期三

become CAPN maintainer

Gugod 幫我在 pause.perl.org 申請了一個帳號,就這樣變成寥寥可數的台灣 cpan maintainer ,真是科科。

2007年7月14日 星期六

修復留言板

今天終於把光電營網站的留言板修復了,因為對 debian 的套件名稱還不太熟,一直找不到 GD lib 的套件,也就不能用 cpan 安裝 GD 和 Authen::Captcha,花了一點時間終於找到要安裝 libgd2-xpm 這個套件,這樣會同時支援 xpm,而且這套件會把 cpan 裡 GD 需要的 libjpeg、libfreetype、libpng、zlib、libxpm 都一起安裝了,這樣就省去很多麻煩,接下來就可以進 cpan 一舉把 GD 和 Authen::Captcha 編譯完成,到這裡就大功告成,等過幾天再來重寫那隻留言板。

2007年6月18日 星期一

駱馬書速記-第二章

Chapter2 純量資料
------------------------------------------------------------------------
2.1
■perl 內部不存在整數,所有整數常數會轉換成等效的倍精度數值

■數值可以用指數表示法
ex: 100=1e2

■perl 可以在整數內插入底線方便閱讀
ex:5432345=5_432_345

■八進制以0開頭,十六進制以0x開頭,二進制以0b開頭
ex:0377=0xff=0b11111111

■modulus算符(%)只取整數部份運算
ex:10.5%3.2=10%3

■乘冪算符以雙星號表示
ex:2**3=8
------------------------------------------------------------------------
2.2