Ruby¶¼´ÓPerlÄǼ̳ÐÁËʲô£¿
×î½ü¿´ÁË¿´Perl£¬Ö÷ÒªÊÇÏë¿´¿´Ruby¶¼´ÓPerlÄÇÄÃÀ´ÁËЩʲô¡£Í¬Ê±£¬Ò²ÊÇÎÒѧϰPerlµÄһƪ±Ê¼Ç¡£
Ϊʲô´ó¼Ò¶¼ÊÇPerlµÄ´úÂë³óª£¬ÊÇʲôµ¼ÖÂÁËPerl³ÌÐò»ÞɬÄѶ®£¬RubyÖÐÓÖÊÇÈçºÎÈ¡ÉáÕâÐ©ÔªËØµÄÄØ£¿ÎÒÈÏΪPerlÉçÇø×·Çó¸üÉÙ´úÂëµÄ·çÆøÖú³¤ÁË´óÁ¿Ê¹ÓÃÔ¤Éè±äÁ¿µÄ·çÆø£¬´Ó¶øµ¼ÖÂÁËPerl´úÂëµÄ»Þɬ¡£
ÏÂÃæµÄÿ¸öPerlµÄÀý×Ó×ܰéÓÐRubyµÄ¶ÔÕÕ¡£
PerlµÄÀíÄî-ÌõÌõ´óµÀͨÂÞÂí¡¸There is more than one way to do it¡¹¡£
¶¼ËµPerl¼òµ¥¡¢“ÍòÄÜ”¡¢¿ìËÙ¡¢³óª£¬RubyÕ¦¾ÍÕâôÂýÄØ£¿
PerlµÄǰÉíÓïÑÔ£ºC, awk, sed, sh, ÒÔϵͳ¹ÜÀíΪĿ±ê, Ç¿µ÷ʹÓÃÐÔ¶ø²»ÊÇÃÀ¹Û¡£
¶Ï¾ä
PerlµÄÓï¾äÊÇÒÔ·ÖºÅ";"×÷Ϊ·Ö¸ô£¬¶øRubyÊÇÒÔ»»ÐС£ËùÒÔRubyµÄ´úÂëÖÐÏʼû·ÖºÅ¡£
ÊäÈëÊä³ö
RubyµÄÊä³ö(print)ËÆºõ¾ÍÊÇ´ÓPerlÄÇÖ±½ÓÄùýÀ´µÄ£º
#!perl
print "hi, Pope."
#!ruby
print "hi, Pope."
µ«×Ö·û´®µÄÄÚ²å¾ÍÓÐËù²»Í¬ÁË¡£
PerlÖпÉÒÔÕâÑùʵÏÖ×Ö·û´®µÄ±äÁ¿Ìæ»»£º
#!perl
my $name = "Pope";
print "hi, $name\n";
¶øRubyÖÐÊǽ«±äÁ¿ÓÃ#{}°ü¹üÆðÀ´£º
#!ruby
name = "Pope"
print "hi, #{name}."
PerlµÄÊäÈëʹÓÃ<STDIN>¡£²»¹ý£¬´ó¼ÒÒ»°ãÓÃ×êʯÔËËã·û(diamond operator)"<>":
#!perl
print "please enter your name:";
my $name = <>;
print "hello, $name\n";
ÔÚRubyÖУ¬Ò»°ãÓÃSTDIN.gets»òÕßgets£º
#!ruby
print "please enter your name:";
name = gets;
print "hello, #{name}\n";
×Ö·û´®
PerlµÄ×Ö·û´®¿ÉÒÔÓÃË«ÒýºÅÀ¨ÆðÀ´,Ò²¿ÉÒÔÓÃqq//,qq||,qq{},qqºó¸úÈÎÒâ³É¶ÔµÄ·ûºÅ.
#!perl
my $s1 = "Pope";
my $s2 = qq/Pope/;
my $s3 = qq|Pope|;
my $s4 = qq{Pope};
RubyҲѧÀ´ÁË,ÓÃ%q»ò%Q¼ÓÈÎÒâ³É¶ÔµÄ·ûºÅ.²»¹ý,Rubyistϲ»¶ÓÃ%q[].(¸½´øËµÃ÷Ò»ÏÂ%qºÍ%QµÄÇø±ð,ÓÃ%qÀ´À¨¾ÍºÃÏóÊÇÓõ¥ÒýºÅ,¶ø%QÈçͬ˫ÒýºÅ.µ¥Ë«ÒýºÅÊDz»Í¬µÄà¸!)
#!ruby
s1 = "Pope";
s2 = %Q/Pope/;
s3 = %Q|Pope|;
s4 = %Q{Pope};
Êý×é
ÔÚPerlÖУ¬Êý×é±äÁ¿ÊÇÒÔ@·û¿ªÍ·,ÓÃСÀ¨ºÅ°ÑÖµÀ¨ÆðÀ´.
#!perl
my @array = (1, 2, 3);
ÓÃqwÒ²ÐÐ:
#!perl
my @array = qw/1 2 3/;
RubyÖÐÊÇÓÃÖÐÀ¨ºÅ£¬Ò²¿ÉÓÃ%w¡£
#!ruby
array = [1, 2, 3]
PerlºÍRubyµÄÊý×é¶¼¿ÉÒÔ×Ô¶¯À©³ä¡£Êý×éÖÐûÓÐÖ¸¶¨ÖµµÄÔªËØ»á±»PerlÉèΪundef£¬¶øRubyÖÐÊÇnil¡£ÔÚPerlÖмÆËãÊý×鳤¶ÈÊÇÓÃ$#array+1£¬ÆäÖÐ$#arrayÊÇÊý×éarrayµ
Ïà¹ØÎĵµ£º
RuportÊÇÒ»¸öÃâ·ÑµÄRuby±¨±í¹¤¾ß£¬Ëü¿ÉÒÔÁîµ½ÖÆ×÷±¨±íÈí¼þ±äµÃ¼òµ¥Ò»Ð©¡£RuportÖ§³Ö´ÓÎļþ»òÕßÊý¾Ý¿â»ñµÃÊý¾Ý£¬Ìṩ¹¤¾ß²Ù×÷Êý¾Ý¡£¶îÍâµØ£¬RuportÖ§³Ö¸ßÀ©Õ¹µÄ¸ñʽ»¯Èí¼þ£¬Ä¿Ç°Äܹ»Ö§Ô®HTML¡¢PDF¡¢CSVºÍÎı¾Êä³ö¡£
Ruport¿ÉÄÜÊÇRubyĿǰΨһµÄ±¨±í¹¤¾ß£¬Ä¿Ç°ÔÚ³ÖÐø¿ª·¢ÖУ¬¸ü¶àµÄÐÂÌØÐÔÕýÔÚÌí¼Ó¡£
°²×°·½·¨£º
gem instal ......
ÓÐÒ»¸öȫеÄÏîÄ¿£¬ÒòΪ¿¼Âǵ½½«À´µÄÊý¾ÝÀ©Õ¹ÐÔÄÜ£¬ËùÒÔ¿¼ÂÇÓÃCassandra×öÊý¾Ý´æ´¢£¬Ç°¶ËÓÃLighttpd + FastCGI + Rails¡£ÔÚʹÓÃCassandraµÄʱºò£¬¾õµÃÓÐһЩ¶«Î÷¿ÉÄÜ´ó¼Ò¶¼ÐèÒª£¬¾ÍдÁËÒ»¸ö¼òµ¥µÄÖ¸ÄÏ¡£ÒòΪÄÚÈݱȽϳ¤£¨16Ò³£©£¬¾ÍŪÁ˸öPDFÎļþ¸ø´ó¼ÒÏÂÔØ¡£
Cassandra in Action with Twitter's Ruby Client.pdf
Èç¹ûÏÂÔ ......
¿ª·¢»·¾³
OS:WindowsXP
Ruby:Ruby1.8.7
Rails:Rails2.3.5
Mysql:Mysql5.0.9
IDE:Rubymine2.0.1
×¼±¸¹¤×÷£º
°²×°ÒÔÏÂgem°ü
gem install ruport
gem install ruport-util
gem install acts_as_reportable
±¾ÀýÉè¼ÆµÄ±¨±íϵͳ¹¤×÷ÔÀíÈçͼ£¨´¿Êô¸öÈËÀí½â£©£¬ÒÔProducts±íΪÀý£º
½ÓÏÂÀ´ÊµÏÖµÄÀý×Ó½«ÀûÓÃeval·½·¨ÊµÏ ......
Ruby Òì³£´¦Àí
ÎÄÕ·ÖÀà:Ruby±à³Ì ¹Ø¼ü×Ö: ruby Òì³£ Òì³£´¦Àí
Òì³£´¦ÀíÊÇ¿ª·¢¹ý³ÌÖо³£ÒªÃæ¶ÔµÄÎÊÌ⣬»ù±¾ËùÓи߼¶ÓïÑÔ¶¼ÓÐ×Ô¼ºµÄÒì³£´¦Àíϵͳ£¬rubyÒ²²»ÀýÍ⣬¶øÇÒʹÓÃÆðÀ´Ò²·Ç³£¼òµ¥¡£
rubyÖÐÒì³£µÄÅ׳öÊÇʹÓõÄraise·½·¨£¬¼Çס ......
RuportĿǰ×Ô´øÖ§³ÖPDF,HTML,CSV,TXT¸ñʽÊä³ö£¬Èç¹ûÏë´òÓ¡.xml£¬.bat±¨±íÔõô°ì£¿
±¾Àý½«ÒÔXML¸ñʽΪÀý£¬ÊµÏÖRuport::FormatterµÄÁíÒ»ÖÖ×Ô¶¨ÒåÓ¦Óá£
RuportµÄÓ¦Óòο¼£º Ruby Ruportʵ¼ù—¼òµ¥±¨±íϵͳ
×¢£ºÆäËû¸ñʽµÄ±¨±íÖ»ÐèÒªÐÞ¸Ärenders¶ÔÓ¦µÄÄÚÈÝ£¨ÈçÏ£Íû±£´æÎª.bat¸ñʽ£¬½«renders :xml¸ÄΪrenders :bat£©£¬ ......