Perl vs Ruby

就說了我是個善變人吧…
洗個澡就變了…
說說我認為Ruby最大的弱點吧…
多國語言處理…@@
我覺得這點Perl作的不錯,舉個例子…

Perl跟Ruby都有提供length這個方法可以計算string的長度
不過Perl對兩個中文字算出來的是“2“,Ruby是“4“
對unicode,Ruby算出來的是“6“…(因為unicode是3個byte)
這個原因影響很大…因為Perl提供看起來很像OO的方法,且正如它
的faq所說,是個適合懶骨頭的語言:P
而Ruby的語法看起來很乾淨,很容易了解,不過…我還沒找到對於
中文的解決方法,也許以後Ruby在這方面會更完整吧^^

很期待完全重寫,更加OO的Perl6
也很期待,更多好用的Ruby模組…

說到模組…完全弄不懂Perl程式模組化方法@@
Python跟Ruby都是直接require或import就好了…
好像Perl程式員都喜歡寫在一個檔案裡?

Ruby加油…

Ruby @@

我覺得我真是個善變又喜新厭舊的人啊…
之前喜歡Python,後來支持Perl,現在又被我挖到了個Ruby….
天啊…到底那個比較好…
Ruby可以說是集Perl跟Python的優點於一身…
我到現在還找不出什麼可以說服我放棄它的…
不過沒有十全十美的東西啊..我現在還攪不太清楚它的多國語言支援如何..
只知道它吃什麼吐什麼…中文還是用utf8比較沒問題…
Gtk2的介面跟Perl比較像,不過它的物件導向介面又比Python好…
真的很直得考慮…
ps.日本人發明的

Perl and Gtk2 menu

今天主要學到了選單(menu)的寫法,不過它使用的資料型態我看不太懂,似乎跟物件有關,看起來很奇怪。

以下是有關menu部份的code

use Gtk2::SimpleMenu;
my $menu_tree = [
    _File => {
        item_type => "<Branch>",
        children => [
            _Quit => {
                callback => sub { Gtk2->main_quit;},
                callback_action => 0,
                accelerator => "<ctrl>Q",
                },
            ]
        }
    ];
my $menu = Gtk2::SimpleMenu->new (
    menu_tree => $menu_tree,
    default_callback => sub { print "hello";},
    user_data => "user_data"
    );
$vbox->pack_start ($menu->{widget},0 ,0 ,0);

Perl and Gtk2 與中文

趁著還記得趕快記下來^^
Perl的encode轉換做的很不錯喔~~~
Gtk2是吃utf8的,透過轉換可以很方便的使用中文

這是我寫的範例…

#!/usr/bin/perl -w
use strict;
use Gtk2;
use encoding "Big5",STDOUT=>"utf8";

Gtk2->init;
my $title = "Hello 2 !";
my $win = Gtk2::Window->new ("toplevel");
$win->set_title ($title);
$win->set_default_size (200,200);
$win->signal_connect("delete_event",sub { Gtk2->main_quit;});

my $vbox = Gtk2::VBox->new (0, 0);
$win->add ($vbox);

my $str = <<HERE;

測試	測試
哈哈
Perl is very good ^^

HERE
my $label = Gtk2::Label->new ($str);
$vbox->pack_start ($label,1 ,1 ,0);

$win->show_all;
Gtk2->main;